我正在使用DevExpress WPF控件。但似乎他们的控件(或至少是网格)使用事件而不是命令(而不是MVVM友好)。
我已经看到了几种方法来进行事件到命令的转换。但他们似乎都对我有点黑了。我有read它们在附加到DevExpress Grid的部分时会崩溃。
我正在进行一些Blue-Sky开发,并且从一开始就破解我的用户界面似乎是一个糟糕的主意。
DevExpress Grid是否可以与MVVM和命令一起使用? (即我错过了什么?)
如果没有,Telerik会不会?还是其他任何控制厂商?
现在我唯一能看到的就是Xceed。如果DevExpress看起来有限,它们是我唯一的选择吗?
答案 0 :(得分:1)
Telerik肯定使用命令。但是,任何WPF控件都可以使用System.Windows.Interactivity将行为映射到命令。
条款 http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/
重要的一点是:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
...
<DevExpressControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter" >
<i:InvokeCommandAction Command="{Binding FooCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DevExpressControl>
因此,在几行xaml行中,您将事件绑定到命令。