【发布时间】:2011-12-20 12:55:23
【问题描述】:
这是我的 TreeView 的“ItemSource”的 ObservableCOllection:
ObservableCollection<Tuple<string, object>>
问题是我现在正在编写SelectedItemChanged 事件,我遇到了以下问题。就我的尝试而言,除了函数声明之外,我什么也得不到:
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<object> e)
(我在 xaml 中得到了以下代码:
SelectedItemChanged="plugin_Selected"
)
问题是当我这样做时
e.NewValue.GetType()
当然,我有一个Tuple<string, object>,但在我的 plugin_Selected 中,我必须访问 Item2(我的 Tuple 的对象)
我想到的合乎逻辑的事情是用以下代码重写我的函数:
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<Tuple<string, object>> e)
但我收到以下错误:
No overload for 'plugin_Selected' matches delegate 'System.Windows.RoutedPropertyChangedEventHandler<object>'
那么,如何访问我的 Tuple 的 Item1(字符串)和 Item2(对象)值?
编辑:我得到了这个测试,可能是解决问题的一种方法
if (e.NewValue.GetType() == typeof(Tuple<string, object>))
但我不知道下一步该做什么,原因如下:
object MyObject = = e.NewValue.Item2;
无法编译... :(
【问题讨论】:
标签: c# tuples selecteditemchanged