ListBox SelectionChanged SelectedItem在某些机器上没有更新

时间:2013-05-23 14:40:21

标签: c# wpf listbox selectionchanged

我编写了一个小型WPF应用程序来编辑配置文件。 GUI主要由两个ListBox组成。第二个ListBox的内容取决于第一个ListBox的选定项,并且每当选择第一个ListBox中的另一个项时都应更新。 我意识到这使用第一个ListBox的SelectionChanged事件来设置第二个ListBox的ItemsSource。在我的机器上构建并测试它。工作(并且仍在工作)很好。 然后我将申请发送给我的同事,以便他可以尝试申请。 在他的机器上,第二个ListBox没有更新(当他第一次从第一个ListBox中选择一个项目时,第二个按预期更改,但如果他随后选择了另一个项目则没有。)

我缩小了问题的范围,发现事件是按预期提出的,但SelectedItem属性没有改变。

我能够使用AddedItems的{​​{1}}属性来解决问题,而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 个答案:

答案 0 :(得分:1)

如评论中所示,问题是版本不匹配。希望这能帮助任何人遇到这类问题,因为似乎没有相关的文档。