以编程方式从自定义用户控件中的数据上下文访问数据

本文关键字:数据 上下文 访问 控件 用户 编程 方式 自定义 | 更新日期: 2023-09-27 18:01:27

我已经定义了一个自定义用户控件,我在MVVM Prism Silverlight (c#)应用程序中使用。我在视图中这样使用控件:

<my2:DetailsTable Name="detailTable" 
                HorizontalAlignment="Stretch" 
                VerticalAlignment="Stretch" 
                HorizontalContentAlignment="Stretch" 
                VerticalContentAlignment="Stretch"
                DataContext="{Binding MyDataObject}" />

然后我想在我的自定义控件DetailTable内的代码中使用这个绑定的MyDataObject。我想首先将对象绑定到数据上下文,如图所示,然后在代码后面显示这个对象的属性标签,文本框等在这个自定义用户控件。

如何做到这一点?

以编程方式从自定义用户控件中的数据上下文访问数据

在后面的代码中,在xaml中设置了数据上下文之后,可以使用以下命令检索绑定对象:

MyDataObjectType dataObject = (MyDataObjectType)detailsTable.DataContext;

那么你可以使用dataObject。Property1。

如果文本框/文本块在同一个视图中,那么你可以通过将文本框/文本块的Text属性与MyDataObject绑定来做到这一点。Property1等。

示例代码。

<my2:DetailsTable Name="detailTable"
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch"  
       HorizontalContentAlignment="Stretch"
       VerticalContentAlignment="Stretch"                 
       DataContext="{Binding MyDataObject}" />
<TextBox Text={Binding MyDataObject.Property1}/>
<TextBlock Text={Binding MyDataObject.Property2}/>