首页 > 解决方案 > ComboBox SelectedItem 绑定不适用于集合中的对象

问题描述

我有以下 XAML:

<Grid x:Name="main_grid">
    <ItemsControl ItemsSource="{Binding MyThings}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding DataContext.Things, ElementName=main_grid}" SelectedItem="{Binding .}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

MyThings并且Things都是ObservableCollection<Thing>

如果Things包含三个对象,并且我已将其中一个添加到 中MyThings,则在加载视图/XAML 时,ComboBox最初将显示该项目。但是,当我更改 中的选择时ComboBox,其中的项目MyThings不会像我期望的那样替换为新选择的项目(如果它绑定到单个对象,而不是集合中的对象,它将被替换)。

为什么这不起作用?有没有办法让它发挥作用?

标签: c#wpfxamlmvvmdata-binding

解决方案


推荐阅读