为什么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更新。其余代码与链接中给出的示例相同。
为什么在这种情况下值不改变?
WPF绑定不是这样工作的。
如果您使用{Binding}
,那么WPF刷新该绑定的唯一方法是重置DataContext
。该绑定没有PropertyPath
要遵循,因此不能调用INotifyPropertyChanged
来刷新这种绑定。