以下this示例(示例2)数据绑定工作,并根据ArtistName
的值更新UI。
如果xaml绑定是这样写的:
<Label Grid.Column="1" Grid.Row="1" Content="{Binding}" />
而不是
<Label Grid.Column="1" Grid.Row="1" Content="{Binding ArtistName}" />
然后在SongViewModel
上调用ToString,即使我像这样覆盖它:
public override String ToString()
{
return Song.ArtistName;
}
该值不会通过DataBinding更新。其余代码与链接中给出的示例相同。
为什么在这种情况下没有改变价值?
答案 0 :(得分:2)
WPF Binding无法正常工作。
如果你{Binding}
那么WPF刷新该绑定的唯一方法就是重置DataContext
。因为Binding没有PropertyPath
,所以无法调用INotifyPropertyChanged
来刷新那种绑定。