首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定到ObservableCollection<Tuple<string、object>>的SelectedItemChanged事件

绑定到ObservableCollection<Tuple<string、object>>的SelectedItemChanged事件
EN

Stack Overflow用户
提问于 2011-12-20 20:55:23
回答 2查看 499关注 0票数 1

这是我的TreeView的"ItemSource“的ObservableCOllection:

代码语言:javascript
复制
ObservableCollection<Tuple<string, object>>

问题是,我现在正在编写SelectedItemChanged事件,我遇到了以下问题。就我所尝试的而言,我的函数声明中除了它之外,我不能获得其他任何东西:

代码语言:javascript
复制
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<object> e)

(我用xaml编写了以下代码:

代码语言:javascript
复制
SelectedItemChanged="plugin_Selected"

)

问题是,当我这样做的时候

代码语言:javascript
复制
e.NewValue.GetType()

当然,我得到了一个Tuple<string, object>,但在我的plugin_Selected中,我必须访问Item2 (我的元组的对象),我想到的逻辑就是用以下命令重写我的函数:

代码语言:javascript
复制
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<Tuple<string, object>> e)

但我得到了以下错误:

代码语言:javascript
复制
No overload for 'plugin_Selected' matches delegate 'System.Windows.RoutedPropertyChangedEventHandler<object>'

那么,如何访问元组的Item1 (string)和Item2 (object)值呢?

编辑:我得到了这个测试,这可能是解决问题的一种方法

代码语言:javascript
复制
if (e.NewValue.GetType() == typeof(Tuple<string, object>))

但我不知道下一步该怎么做,原因如下:

代码语言:javascript
复制
object MyObject =  = e.NewValue.Item2;

不能编译...:(

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-20 21:02:02

为什么不将e.NewValue类型转换为元组呢?

代码语言:javascript
复制
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    Tuple<string, object> tuple = e.NewValue as Tuple<string, object>;
}

使用as操作符可以确保如果强制转换失败,您的元组将为空!

票数 1
EN

Stack Overflow用户

发布于 2011-12-20 20:58:36

只需将e.NewValue转换为正确的类型:

代码语言:javascript
复制
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    var tuple = (Tuple<string, object>)e.NewValue;
    var item2 = tuple.Item2;
}

当然,这会产生一个错误使用强制转换的异常,但这完全是另一个问题。您可以按原样使用它,因为它将在此特定场景中工作,或者,如果您打算将此处理程序也用于其他项类型,则可以将其抽象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8575773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档