我有一个 wpf 组合框,它绑定到我的视图模型中的
IEnumerable
集合。首次绑定组合框时,选择 null。当选择组合框中的任何其他值时,空值就会消失。有没有办法在不改变集合的情况下保留空值?
<ComboBox ItemsSource="{Binding CarCollection}" SelectedItem="{Binding SelectedCar}"
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding CarName}" VerticalAlignment="Center"
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
不,你不能让
null
成为一个选项,除非它实际上在列表中。
您当然可以将 backing 属性设置为
null
,这应该会清除 UI 选择。如果您需要一个空属性,而不修改视图模型中的列表,请考虑使用CompositeCollection
。有了它,您可以执行以下操作:
<CollectionViewSource x:Key="ComboBoxItems">
<CompositeCollection>
<ListViewItem>Pick a choice</ListViewItem>
<CollectionContainer Source="{Binding MyCollection}"/>
</CompositeCollection>
</CollectionViewSource>
可以在 MSDN 上找到完整示例。