WPF组合框绑定空值

问题描述 投票:0回答:1

我有一个 wpf 组合框,它绑定到我的视图模型中的

IEnumerable
集合。首次绑定组合框时,选择 null。当选择组合框中的任何其他值时,空值就会消失。有没有办法在不改变集合的情况下保留空值?

<ComboBox ItemsSource="{Binding CarCollection}" SelectedItem="{Binding SelectedCar}"
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock  Text="{Binding CarName}" VerticalAlignment="Center"                                 
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
c# wpf combobox
1个回答
2
投票

不,你不能让

null
成为一个选项,除非它实际上在列表中。

您当然可以将 backing 属性设置为

null
,这应该会清除 UI 选择。如果您需要一个空属性,而不修改视图模型中的列表,请考虑使用
CompositeCollection
。有了它,您可以执行以下操作:

<CollectionViewSource x:Key="ComboBoxItems">
    <CompositeCollection>
       <ListViewItem>Pick a choice</ListViewItem>
       <CollectionContainer Source="{Binding MyCollection}"/>
    </CompositeCollection>
</CollectionViewSource>

可以在 MSDN 上找到完整示例。

© www.soinside.com 2019 - 2024. All rights reserved.