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

时间:2011-07-08 09:41:42

标签: c# silverlight-4.0 mvvm custom-controls prism

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

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

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

如何实现这一目标?

感谢

2 个答案:

答案 0 :(得分:3)

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

MyDataObjectType dataObject = (MyDataObjectType)detailsTable.DataContext;

然后您可以根据需要使用dataObject.Property1。

答案 1 :(得分:0)

如果同一视图中的文本框/文本块,则可以通过将文本框/文本块的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}/>