2012-07-03 28 views
0

我有一个文本框,如下所示:键联结两个命令(一个在虚拟机和一个在View),以一个关键

<TextBox Text="{Binding Stuff, UpdateSourceTrigger=PropertyChanged}"> 
    <TextBox.InputBindings> 
     <KeyBinding Key="Enter" Command="{Binding Path=LoadStuffCommand}" /> 
     <KeyBinding Key="Enter" Command="SelectAll" /> 
    </TextBox.InputBindings> 
</TextBox> 

当它运行时只选命令运行。但是,如果我取出SelectAll行,则LoadStuffCommand运行良好。

很明显,它将取代下一个命令(最后一个胜利)的命令。但我需要一种方法来运行我的命令,并选择TextBox中的所有文本。

通常情况下,我只是制作另一个命令来触发我的两个命令。但其中一个是在我的ViewModel中,另一个是在我的View中。我怎么能做出一个能同时触发的命令? (有没有办法在XAML中做出命令?)

+0

试试这个http://stackoverflow.com/questions/6601270/can-i-call-a-command-inside-a-command – ecMode

回答

1

这可以用an aggregator完成。基本上,将这些命令分组为一个对象,然后按顺序调用它们,并将其绑定到该对象,就像它的一个命令一样。

+0

谢谢你的答案。但是,该示例使用自定义滚动的命令(因此它们具有“实例”属性)或应用程序级命令。我只是在我的ViewModel上使用DelegateCommand,或者在我的TextBox上使用SelectAll命令。滚动我自己的命令类似乎是错误的方法。 – Vaccano

+0

DelegateCommands实现Icommand。您应该能够使用此解决方案而不更改任何内容。或者使用这个模型推出自己的产品。它非常简单。 – Tyrsius

相关问题