我试图了解整个MVVM的事情和绑定。我有一个ViewModel类,它具有另一个类的属性。我想将该类的(字符串)属性绑定到文本块的文本。
我将ViewModel设置为我的window \ page的数据上下文。然后这样做:
<TextBlock Text="{Binding ElementName=myAddressClass, Path=StreetName}" />
但这不起作用。文字是空的。
我可以直接公开StreetName,如下所示:
<TextBlock Text="{Binding Path=StreetName}" />
所以我在第一个例子中做错了。这看起来很简单......我只是对元素名称或应该设置的内容感到困惑?
感谢
答案 0 :(得分:1)
我想你可能很困惑。如果要绑定到MyAddress.StreetName,只需执行以下操作:Text="{Binding MyAddress.StreetName}"
确保MyAddress是DataContext的属性。 ElementName用于绑定到其他控件。
答案 1 :(得分:1)
ElementName用于引用逻辑树中的XAML元素。由于您尝试绑定的不是元素,因此ElementName不是正确的方法。在这种情况下,虚线路径表示法是最简单的方法:
{Binding Path=myAddressClass.StreetName}