我可以从ICommand继承一个Command类,而不是在一个类上有多个ICommand实例吗?

时间:2013-10-02 13:40:58

标签: wpf mef icommand

在代表该命令的类中实现命令并从ICommand派生,这似乎更为全面。这样我也可以在MEF复合应用程序中导出和导入命令。

这是可行的还是可行的?有没有已知的模式来实现这个目标?

1 个答案:

答案 0 :(得分:0)

我不确定这回答你的问题有多好,因为我对MEF知之甚少。

不需要在类上直接引用命令实例,但是您需要某种方式来呈现将视图返回给视图的绑定源。例如,您可以通过将MenuItem的ItemsSource绑定到返回动态生成的IEnumerable命令的属性来构建菜单。

您还可以使用value converter按需获取某个任意标识符的命令:

<Button Command="{Binding Path=CommandId, Converter={StaticResource CommandConverter}}" />

或直接从XAML通过Binding.Source传递标识符:

<Button Command="{Binding Source=DesiredCommand, Converter={StaticResource CommandConverter}}" />

在这种情况下,字符串“DesiredCommand”将传递给转换器。