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

我有一个命令... _Executed方法收到一个KeyValuePair(类型无关紧要)作为它的参数。

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


不能这样做,因为它不能为空。我该如何完成?我想从e.Parameter中提取KeyValuePair。

感谢任何见识,并会在必要时愉快地发布更多代码/信息。

最佳答案

您必须使用显式强制转换,而不是隐式强制转换。
隐式转换:

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


显式转换:

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

关于c# - 如何将作为参数传递的KeyValuePair强制转换为Command_Executed?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12487276/

10-13 07:28