Вот ObservableCOllection, что это «ItemSource» моего TreeView:
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 (объекту моего кортежа)
Логическая вещь, которая пришла мне в голову, была переписать мою функцию:
private void plugin_Selected(object sender, RoutedPropertyChangedEventArgs<Tuple<string, object>> e)
но я получил следующую ошибку:
No overload for 'plugin_Selected' matches delegate 'System.Windows.RoutedPropertyChangedEventHandler<object>'
Итак, что я могу сделать, чтобы получить доступ к значениям Item1 (строка) и Item2 (объект) моего кортежа?
РЕДАКТИРОВАТЬ: я получил этот тест, который может быть способом решения проблемы
if (e.NewValue.GetType() == typeof(Tuple<string, object>))
но я не знаю, что делать дальше, потому что что-то вроде:
object MyObject = = e.NewValue.Item2;
не компилируется ...: (