在具有多个DataContext的同时如何将字符串绑定到DataContext?

时间:2020-07-24 06:55:01

标签: wpf binding devexpress datacontext

我正在使用自定义库,并且必须将SQL连接字符串绑定到SqlGeometryDataAdapter。如果使用以下方法,则除非声明将ConnectionString 设置为

,否则无法声明多个DataContext,因为代码无法编译。

=“ {Binding}” />

而非NOT

=“ {Binding 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;" };
    }
}

1 个答案:

答案 0 :(得分:0)

答案:

DataContext = WKT;没有意义。为了绑定到MainWindow的WKT属性,请设置DataContext = this;。 @Clemens

相关问题