查看标准的 WPF 命令,例如复制/粘贴,它们似乎都使用一个按钮并作用于文本框。
我的问题:当我有一个按钮时如何使用命令,但我需要在两个单独的控件(一个文本框和一个组合框)中设置数据。如果用户在文本框中写入文本,但未选择组合框值,则 CanExecute 应该会失败。这适用于已设置组合框但不设置文本框的情况。
具体来说,就我而言,所有这些控件都包含在一个 tabitem 中。同样,我还有另一个选项卡,只有一个文本框和一个按钮。我希望它具有与第一个选项卡相同的功能,除了它不检查组合框值,它应该检测到没有组合框并传入默认的“空对象”值。
Execute 方法应该在我的视图模型中调用一个方法,并从组合框和文本框中传入值。同样,每个选项卡都应该传入另一个唯一的静态值;我想我可以使用命令参数来处理这个问题。
我该如何进行这项工作?我是否将父选项卡设为 commandtarget 并在 can/execute 方法中直接引用其子控件?