首页 > 解决方案 > 如何在拥有多个 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;" };
    }
}

标签: wpfbindingdevexpressdatacontext

解决方案


回答:

数据上下文 = WKT;没有意义。为了绑定到 MainWindow 的 WKT 属性,设置 DataContext = this;。@克莱门斯


推荐阅读