mam dwie listy o różnej ItemsSource
ale z SelectedItem
przyłączonym do tego samego obiektu - „Nazwa”.Odznacz wszystkie pozycje, gdy SelectedItem jest związany z czymś, co nie istnieje na liście
Najpierw wybieram pozycję "c" z prawej listy, aby wybrać pozycję "c" na lewej liście.
Niż wybrałem inny element z prawej listy, ale "c" na lewej liście jest wciąż zaznaczone. Rozumiem, dlaczego tak się dzieje, ale czy mogę usunąć zaznaczenie "c" z prawej listy?
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>
Kod za:
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;
}
}
Więc nadal chcesz „c”, które zostaną wybrane w obu listach, ale gdy element istnieje tylko w jednej listy usunąć z selction inny? –
sa_ddam213 - dokładnie! :) – Erez
Należy pamiętać, że twoje okno ma już właściwość [Name] (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.name.aspx). Tak więc twój nowo utworzony jest w konflikcie z już istniejącym. A w Twojej właściwości Name brakuje powiadomienia o zmianie. – Clemens