/ / ListBox SelectionChanged SelectedItem nie aktualizuje się na niektórych komputerach - c #, wpf, listbox, selectionchanged

ListBox SelectionChanged SelectedItem nie aktualizuje się na niektórych komputerach - c #, wpf, listbox, selectionchanged

Napisałem małą aplikację WPF do edycji aplik konfiguracyjny. GUI składa się głównie z dwóch ListBoxów. Zawartość drugiego ListBox zależy od wybranej pozycji pierwszego ListBox i powinna zostać zaktualizowana po wybraniu innego elementu z pierwszego ListBox. Zdałem sobie z tego sprawę za pomocą zdarzenia SelectionChanged pierwszego ListBox, aby ustawić ItemsSource drugiego. Zbudowałem go i przetestowałem na moich maszynach. Działa (i nadal działa) dobrze. Następnie wysłałem aplikację do mojego kolegi, aby mógł wypróbować aplikację. W jego komputerze drugi ListBox nie był aktualizowany (kiedy po raz pierwszy wybrał element z pierwszego ListBox, drugi zmienił się zgodnie z oczekiwaniami, ale nie, jeśli następnie wybrał inny element).

Zmniejszyłem problem i okazało się, że wydarzenie zostało podniesione zgodnie z oczekiwaniami, ale SelectedItem nieruchomość się nie zmienia.

Byłem w stanie rozwiązać problem za pomocą AddedItems własność SelectionChangedEventArgs, który aktualizuje się poprawnie.

Czy ktoś wie, dlaczego tak się dzieje? Ponadto wybrany element zostanie podświetlony prawidłowo. Czy WPF korzysta z innej właściwości, aby określić, który element należy podświetlić? A jeśli tak, to jak mogą się zsynchronizować?

Na wypadek, gdyby ktoś tu zadał odpowiednie fragmenty kodu

ListBox:

<ListBox Name="lb_Users" SelectionChanged="lb_Users_SelectionChanged">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove" Click="UserRemove_Click"/>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>

I zaktualizowany Handler:

private void lb_Users_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if((e.AddedItems[0] as User)!= null)
lb_VMs.ItemsSource = (e.AddedItems[0] as User).GetVMs();
}

Odpowiedzi:

1 dla odpowiedzi № 1

Jak widać w komentarzach, problemem jest niedopasowanie wersji. Mam nadzieję, że to pomoże każdemu, kto ma tego rodzaju problem, ponieważ wydaje się, że nie ma na ten temat dokumentacji.