通过复制/粘贴等标准WPF命令,他们似乎都可以使用一个按钮并在文本框上执行操作。我的问题:当我有一个按钮时,如何使用命令,但我需要在两个单独的控件(文本框和组合框)中设置数据。如果用户在文本框中编写了文本,但未选择组合框值,则CanExecute应该失败。这适用于已设置组合框但不包含文本框的情况。作用于两个控件的命令
在我的情况下,所有这些控件都包装在一个tabitem中。另外,我还有另一个只有文本框和按钮的选项卡。我希望它具有与第一个选项卡相同的功能,除了检查组合框值以外,它应检测到没有组合框并传入默认的“空对象”值。
Execute方法应该在我的viewmodel中调用一个方法,并从combobox和textbox传入值。同样,每个选项卡应该传递另一个唯一的静态值;我想我可以使用commandparameter来处理这个问题。
我该如何做这项工作?我是否可以在can/execute方法中将父标签作为commandtarget并直接引用其子控件?
文本框仅仅是一个坏榜样。即使WPF有很多“预定义”的命令,如ApplicationCommands中的命令。其中没有任何事情。它只是为了命名和给命令一个捷径。恰巧TextBox已经实现了这些命令。这就是你需要做的,为你想要的命令提供一个Execute和CanExecute Handler。检查命令绑定的msdn。 – dowhilefor 2012-02-27 21:37:06
嘿dowhilefor,感谢您的提示,但我已经熟悉一般命令的概念,我只需要帮助我的特定情况,我从来没有见过: 1.如何执行命令时,他们的工作两个控件(每个示例仅适用于来自一个控件的输入)。我提出了我提出的解决方案,但它涉及(直接)引用一个控件,这听起来像一个糟糕的主意。 2.解决问题1后,如何区分提供相同功能的两个选项卡? – FZdev 2012-02-27 21:54:26
通常在当前焦点的控件上触发命令。因此,即使您有两个文本框,它们也会分别处理撤销命令,具体取决于焦点所在的位置。你是这个意思吗? – dowhilefor 2012-02-27 22:02:02