2013-05-23 2 views
2

Я написал небольшое приложение WPF для редактирования файла конфигурации. GUI в основном состоит из двух ListBoxes. Содержимое второго ListBox зависит от выбранного элемента первого ListBox и должно обновляться, когда выбран другой элемент в первом ListBox. Я понял это, используя событие SelectionChanged первого ListBox, чтобы установить ItemSource второго. Построил его и протестировал его на моих машинах. Работал (и все еще работает) отлично. Затем я отправил заявление своему коллеге, чтобы он мог попробовать приложение. На его машине второй ListBox не обновлялся (когда он сначала выбрал элемент из первого ListBox, второй изменился как ожидалось, но не, если он затем выбрал другой элемент).ListBox SelectionChanged SelectedItem не обновляется на некоторых машинах

Я сузил проблему и выяснил, что мероприятие было поднято так, как ожидалось, но свойство SelectedItem не менялось.

Я был в состоянии решить проблему, используя свойство AddedItems файла SelectionChangedEventArgs, который обновляется корректно.

Кто-нибудь знает, почему это происходит? Кроме того, выбранный элемент подсвечивается правильно. Так что WPF использует другое свойство, чтобы определить, какой элемент выделить? И если да, то как они могут выйти из синхронизации?

В случае, если кто спрашивает здесь соответствующие фрагменты кода

ListBox:

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

И обновленный 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(); 
} 
+1

Вы, ребята, проверили, что у вас одна и та же версия .NET, со всеми установленными исправлениями/обновлениями для Windows? – Renan

+0

@Renan Иногда вы забываете самые простые вещи ... У него более старая версия, чем та, которую я использую. Так это известная ошибка в .NET 4.03, потому что я не мог найти что-либо на этом пути от googeling? – mgttlinger

+0

Возможно. Не забывайте, что при автоматическом обновлении Windows Update (как и должно быть) почти никто не должен иметь такую ​​проблему. – Renan

ответ

1

Как видно в комментариях, проблема является несоответствие версий. Надеюсь, это поможет тем, кто сталкивается с такой проблемой, поскольку, похоже, об этом нет никакой документации.

Смежные вопросы