wpf - 如何在拥有多个 DataContext 时将字符串绑定到 DataContext?
问题描述
我正在使用自定义库,并且必须将 SQL 连接字符串绑定到 SqlGeometryDataAdapter。如果我使用以下方法,我无法声明多个 DataContext,因为除非我将 ConnectionString 设置为
="{绑定}"/>
并不是
="{绑定WKT}"/>
XAML:
<dxm:VectorLayer x:Name="WKT_Layer" DataLoaded="WKT_Layer_DataLoaded">
<dxm:SqlGeometryDataAdapter x:Name="WKT_Adapter"
SqlText = "SELECT [WKT], [SID],[FILL],[STROKE] FROM [TLORIS] ORDER BY [SID]"
SpatialDataMember = "WKT"
ConnectionString="{Binding}"/>
</dxm:VectorLayer>
XAML.CS:
public MainWindow()
{
InitializeComponent();
DataContext = WKT;
}
public string WKT { get; } = "Data Source=127.0.0.1; Initial Catalog=TESTDB; Connection Timeout=2; Persist Security Info=True; User=SA; Password=PASSWORD";
我可以通过创建一个类并在其中声明一个字符串来规避这个问题,但是必须有一种更简单的方法来完成这个吗?
XAML:
<dxm:VectorLayer x:Name="WKT_Layer" DataLoaded="WKT_Layer_DataLoaded">
<dxm:SqlGeometryDataAdapter x:Name="WKT_Adapter"
SqlText = "SELECT [WKT], [SID],[FILL],[STROKE] FROM [TLORIS] ORDER BY [SID]"
SpatialDataMember = "WKT"
ConnectionString="{Binding WKT}"/>
</dxm:VectorLayer>
XAML.CS:
public MainWindow()
{
InitializeComponent();
DataContext = SQLConnection.GetSQLConnection();
}
class SQLConnection
{
public string WKT { get; set; }
public static SQLConnection GetSQLConnection()
{
return new SQLConnection() { WKT = "Data Source=127.0.0.1; Initial Catalog=TESTDB; Connection Timeout=2; Persist Security Info=True; User=SA; Password=PASSWORD;" };
}
}
解决方案
回答:
数据上下文 = WKT;没有意义。为了绑定到 MainWindow 的 WKT 属性,设置 DataContext = this;。@克莱门斯
推荐阅读
- bsmultiselect - 在 BsMultiSelect 上取消全选
- python - Catboost plot_tree 理解
- java - 如何让 Java 类知道要扩展什么?
- javascript - 要求解释代码的某些部分
- json - 如果每个对象不存在,则使用 jq 在每个对象中插入一个键值对
- php - 正则表达式验证并更正电话号码
- powershell - powershell强制参数和用户输入消息框
- hana - 哪个表包含 Hana 数据库中用户的电子邮件 ID?
- azure - Azure 逻辑应用 REST API
- iframe - 当我单击 iframe 时,JavaScript 和 Angular 10 KeyCode 事件不起作用