在代码后台访问数据上下文

4

请注意,这是一个比较基础的问题(我认为)。

我有一个名为 MyUserControl 的 UserControl。我在我的 ListBox 的 DataTemplate 中使用它:

<l:MyUserControl DataContext="Test" />

现在我想在MyUserControl的代码后台访问这个DataContext,我期望DataContext包含一个内容为"Test"的字符串对象。然而,DataContext是空的。我错过了什么?

2个回答

3
如果您想在代码后台访问DataContext属性,请给用户控件(或任何其他控件)命名:

在代码后台:

myControl.DataContext = someobject;

虽然在你的例子中将DataContext设置为“Test”不会有任何作用。

阅读有关WPF数据绑定的内容 http://msdn.microsoft.com/en-us/library/aa480224.aspx


难道不应该换一种方式吗?类似这样:var theDataContext =(SomeViewModelType)myControl.DataContext;或者至少:var theDataContext = myControl.DataContext;op 不想设置数据上下文而是要访问它。 - Jelgab

1

在MyUserControl类中,您需要一个名为DataContext的字段或属性。

请参阅此处了解 .net 中用户控件属性的相关信息。


UserControl已经有一个叫做DataContext的属性,所以我的继承类也会有这个属性。 - Robbert Dam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接