2

看似简单的概念,但无法超越这一点。

我有一个命令...... _Executed 方法接收一个 KeyValuePair(类型无关紧要),因为它是参数。

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

不能这样做,因为它是不可为空的。我该如何做到这一点?我想从 e.Parameter 中提取 KeyValuePair。

感谢任何见解,如有必要,将很乐意发布更多代码/信息。

4

1 回答 1

9

您必须像您所做的那样使用显式转换,而不是隐式转换。
隐式转换:

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

显式演员表:

KeyValuePair<System.Type, MyCustomArgs> kvp = (KeyValuePair<System.Type, MyCustomArgs>)e.Parameter; 
于 2012-09-19T02:31:57.377 回答