Как привести KeyValuePair, передаваемый в качестве параметра, к выполняемой команде?
На первый взгляд простая концепция, но не может пройти мимо этого.
У меня есть команда...метод _Executed получает KeyValuePair (типы не имеют значения) в качестве параметра.
myCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
KeyValuePair<System.Type, MyCustomArgs> kvp = e.Parameter as KeyValuePair<Type, MyCustomArgs>;
:
:
:
}
Не может этого сделать, так как он не может быть аннулирован. Как я могу добиться этого? Я хочу извлечь KeyValuePair из параметра E.
Цените любое понимание и с радостью опубликуете больше кода/информации, если это необходимо.
1 ответ:
Вы должны использовать явное приведение, а не неявное, как вы это сделали.
Неявное приведение:KeyValuePair<System.Type, MyCustomArgs> kvp = e.Parameter as KeyValuePair<Type, MyCustomArgs>;
Явное приведение:
KeyValuePair<System.Type, MyCustomArgs> kvp = (KeyValuePair<System.Type, MyCustomArgs>)e.Parameter;