为什么ToString不能与数据绑定一起使用

时间:2013-05-19 18:03:36

标签: c# wpf data-binding

以下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更新。其余代码与链接中给出的示例相同。

为什么在这种情况下没有改变价值?

1 个答案:

答案 0 :(得分:2)

WPF Binding无法正常工作。

如果你{Binding}那么WPF刷新该绑定的唯一方法就是重置DataContext。因为Binding没有PropertyPath,所以无法调用INotifyPropertyChanged来刷新那种绑定。