8

ItemsSource異なるがSelectedItem同じプロパティにバインドされた2つのリストがあります-「名前」。

まず、右側のリストでアイテム「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バインディングをSelectedValueこれに切り替えると、希望どおりに動作します。他のリストが値を設定しているため、にSelectedItem設定されていないためクリアされません。アイテムを見つける必要があるか、リストの をクリアするため、少し異なる動作をします。 .nullSelectedValueSelectedItem

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

それが理にかなっていることを願っています:)

ここに画像の説明を入力 ここに画像の説明を入力

于 2013-01-06T09:49:02.023 に答える