8

我有两个不同ItemsSourceSelectedItem绑定到相同属性的列表 - “名称”。

首先,我在右侧列表中选择项目“c”,因此左侧列表中的项目“c”也被选中。

比我在右侧列表中选择了另一个项目,但左侧列表中的“c”仍然被选中。我明白为什么要这样做,但是我可以取消选择正确列表中的“c”吗?

在此处输入图像描述

XAML:

 <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition  />
        <ColumnDefinition  />
    </Grid.ColumnDefinitions>

    <ListView SelectedItem="{Binding Name}" ItemsSource="{Binding lstNames1}"/>
    <ListView SelectedItem="{Binding Name}" ItemsSource="{Binding lstNames2}" Grid.Column="1"/>
</Grid>

后面的代码:

 public partial class selected : Window
{
    public ObservableCollection<string> lstNames1 { get; set; }
    public ObservableCollection<string> lstNames2 { get; set; }

    public string Name { get; set; }


    public selected()
    {
        Names1 = new ObservableCollection<string> {"a1", "b1", "c"};
        Names2 = new ObservableCollection<string> { "a2", "b2", "c" };
        InitializeComponent();
        DataContext = this;
    }
}
4

1 回答 1

9

如果您将SelectedItem绑定切换到SelectedValuethis 将按照您的意愿行事, The SelectedItemis not clearing because it not set to because it not set to nullbecause the other list has set a value,SelectedValue行为有点不同,因为它必须找到一个项目,否则它将清除SelectedItem列表中的.

<ListView SelectedValue="{Binding Name}" ItemsSource="{Binding lstNames1}" />
<ListView SelectedValue="{Binding Name}" ItemsSource="{Binding lstNames2}" Grid.Column="1"/>

希望这是有道理的:)

在此处输入图像描述 在此处输入图像描述

于 2013-01-06T09:49:02.023 回答