【发布时间】:2009-10-21 20:05:42
【问题描述】:
我正在尝试像这样将数据绑定到列表框:
<ListBox x:Name="MyListBox" Margin="0,0,0,65">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource MyConverter}}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我绑定到整个对象而不是属性的原因是因为我的转换器需要对象的多个属性来构建它返回的字符串。
这有效,我的字符串被返回。但是,当我更改基于该值的 ObservableCollection 时,屏幕上的值不会改变。如果我只绑定到一个属性并对其进行更改,那么值确实会更改。
我可以做些什么不同的事情?我无法绑定到单个属性,因为我需要转换器中的整个对象...而且 ConverterParameter 已被使用。
【问题讨论】:
-
如果我在我的对象周围创建一个包装器,该包装器使用我的对象的单个属性实现 INotifyPropertyChanged,我可以让它工作。然后绑定到该属性。但是我还需要让包装器实现一个方法,以便在我更改集合时显式调用,以便事件可以调用 PropertyChanged... 看起来像一个可怕的 hack...
标签: wpf data-binding converter