如何确定SelectionChangedEvent的源

时间:2009-03-08 02:12:03

标签: silverlight

我有一个关于Silverlight中的ComboBox的问题,它是选中的项目。

我想确定是什么触发了SelectionChangedEvent,是用户在列表中选择一个新项目还是以编程方式设置?

理想情况下,我想使用CommandPattern来解决这个问题(我实际上是使用修改后的RelayCommand(http://joshsmithonwpf.wordpress.com/2008/11/17/emulating-icommandsource-in-silverlight-2/)。我对其他建议持开放态度。

我还使用了SelectionChangedEventArgs,它有一个OriginalSource属性,在第一次检查时可能看起来有帮助,但它是null(无论选择项目的方式如何。)

除设置内部标志外,还有其他任何想法吗? :)

由于

1 个答案:

答案 0 :(得分:0)

不幸的是,这是一个很难确定的事情,因为在这种情况下,随着选择改变事件,框架很难简单地冒泡任何更改或用户事件。

如果你真的需要,你可以编写一个简单的ComboBoxWrapper,它实际上是你正在谈论的标志 - 所以你可以从ComboBox派生,尝试覆盖或隐藏SelectedItem的CLR setter,然后以这种方式维护状态。

这里使用的任何特定场景?可能有另一种方法来解决方案。