在WPF中,您可以使用IValueConverter或IMultiValueConverter将数据绑定值从say转换int为aColor.
我有一个模型对象的集合,我想将它们转换为他们的ViewModel表示,但在这种情况下,
<ListBox ItemsSource="{Binding ModelItems,
Converter={StaticResource ModelToViewModelConverter}" />
Run Code Online (Sandbox Code Playgroud)
转换器将被写入以立即转换整个集合ModelItems.
我希望单独转换集合的项目,有没有办法做到这一点?
Ram*_*ein 26
您无法在集合本身上设置转换器,因为它会将集合作为输入.你有两个选择:
如果你想使用第二种方法,那么使用这样的东西:
<ListBox ItemsSource="{Binding ModelItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding Converter={StaticResource ModelToViewModelConverter}}"
ContentTemplate="{StaticResource MyOptionalDataTemplate}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
如果您不需要自定义数据窗口,则可以跳过ContentTemplate属性.