为什么ToString不能与数据绑定一起工作?

本文关键字:一起 工作 数据绑定 ToString 不能 为什么 | 更新日期: 2023-09-27 18:14:33

在本例(例2)中,数据绑定工作,并根据ArtistName的值更新UI。

如果xaml绑定是这样写的:

<Label Grid.Column="1" Grid.Row="1" Content="{Binding}" />
不是

<Label Grid.Column="1" Grid.Row="1" Content="{Binding ArtistName}" />

然后ToString在SongViewModel上被调用,即使我像这样重写它:

 public override String ToString()
 {
     return Song.ArtistName;
 }

值没有通过DataBinding更新。其余代码与链接中给出的示例相同。

为什么在这种情况下值不改变?

为什么ToString不能与数据绑定一起工作?

WPF绑定不是这样工作的。

如果您使用{Binding},那么WPF刷新该绑定的唯一方法是重置DataContext。该绑定没有PropertyPath要遵循,因此不能调用INotifyPropertyChanged来刷新这种绑定。