我有一个TextBlock
,我想要数据绑定到一个List<T>
的计数。有点。数据绑定到从列表的计数得到的字符串
我能数据绑定像这样:
<TextBlock Name="tbAlerts" Text="{Binding Path=Alerts.Count}" />
其中警报是List<String>
,它显示了正确的事情。但是,当计数为零时,我想显示“无警报”。
我认为这样做的一个方法是扩展List以便公开一个额外的字符串属性 - 称为CountText
- 发出所需的字符串。当计数为零时,它可能会发出“无警报”,并在Count==1
时发出“一次警报”。这会工作吗?
如果我这样做,我如何获得Count中的更改以产生的PropertyChanged
事件,以便它会在WPF UI中更新?
是获得我想要的效果的首选方式?
不它必须是'List'或者你可以使用另一个集合(比如'ObservableCollection ')?另外显示的文本应该是'计数== 2'等? –
svick
IValueConverter(下面给出的答案)是完全按照您的要求做的最佳做法。它将一个已知的值(一个数字或一些这样的值)更改为一个显示值,然后再返回。然后关注数据和显示仍然分开。 – EtherDragon