【问题标题】:One ViewModel for Multiple Pages一个视图模型用于多个页面
【发布时间】:2012-10-10 09:13:56
【问题描述】:

我有一个带有多个页面的视图模型。我还对绑定到此 ViewModel 中的属性的不同控件的命令。

我如何知道 ViewModel 中的命令是从哪个控件调用的?

【问题讨论】:

    标签: silverlight mvvm action viewmodel


    【解决方案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...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2015-03-05
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 2021-11-28
      • 2015-04-21
      相关资源
      最近更新 更多