我有一个附有多页的视图模型。我还有关于绑定到此ViewModel中的属性的不同控件的命令。
我如何知道从哪个控件调用ViewModel中的Command?
答案 0 :(得分:1)
通常您不需要知道来源。但每个州都有解决方案:) 您可以在viewModel中使用属性,例如
public UIElement Owner {get;set;}
//if(Owner.GetType() ...do bla bla
或者您可以使用CommandParameter
CommandParameter="123" ; CommandParameter="{Binding}"
但我认为如果我们需要知道源代码控制,我们的设计可能会遗漏一些东西。但有些条件我同意这可能是一种需要。
如下面的java代码所示,无法获取动作源,我们对使用此概念的源对象不感兴趣。也许模型或模型行为的一部分应该不常见。
public void itemStateChanged(ItemEvent e) {
...
Object source = e.getItemSelectable();
if (source == chinButton) {
//...make a note of it...
} else if (source == glassesButton) {
//...make a note of it...
} else if (source == hairButton) {
//...make a note of it...
} else if (source == teethButton) {
//...make a note of it...
}