Как привести KeyValuePair, передаваемый в качестве параметра, к выполняемой команде?


На первый взгляд простая концепция, но не может пройти мимо этого.

У меня есть команда...метод _Executed получает KeyValuePair (типы не имеют значения) в качестве параметра.

myCommand_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        KeyValuePair<System.Type, MyCustomArgs> kvp = e.Parameter as KeyValuePair<Type, MyCustomArgs>;
:
:
:
}

Не может этого сделать, так как он не может быть аннулирован. Как я могу добиться этого? Я хочу извлечь KeyValuePair из параметра E.

Цените любое понимание и с радостью опубликуете больше кода/информации, если это необходимо.

1 2

1 ответ:

Вы должны использовать явное приведение, а не неявное, как вы это сделали.
Неявное приведение:

KeyValuePair<System.Type, MyCustomArgs> kvp = e.Parameter as KeyValuePair<Type, MyCustomArgs>; 

Явное приведение:

KeyValuePair<System.Type, MyCustomArgs> kvp = (KeyValuePair<System.Type, MyCustomArgs>)e.Parameter;