代码之家  ›  专栏  ›  技术社区  ›  HaxElit

绑定时的WPF刷新模型

  •  0
  • HaxElit  · 技术社区  · 15 年前

    当wpf绑定到对象时,我想知道是否有一种方法可以调用一个方法或更新我的viewModel对象上的属性?

    我之所以要这样做,是因为当我的ViewModel对象被创建时,它们的数据模型只包含一个ID,该ID用于在必要时从数据库查询数据。因此,当用户导航到该对象时,我希望视图通知ViewModel对象它正在被监视,并因此通知数据模型从数据库更新其值,并将我的ViewModel对象置于加载状态。

    如果视图模型对象在屏幕上显示时知道更新它们自己,我可以避免手动刷新所有对象。

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  2
  •   Reed Copsey    15 年前

    当wpf绑定到视图模型中的对象时,它将使用属性getter来获取值。

    听起来你好像在尝试使用懒惰的评估——让getter懒惰地实例化来自db的信息:

    private int entityId; // Set in advance
    private Entity entityToFetch; // Will be fetched lazily
    
    public Entity EntityToFetch
    {
        get 
        {
            if (this.entityToFetch == null) // || this.entityToFetch.Id != this.entityId) - add this if you're letting this change at runtime...
            {
                this.entityToFetch = DataAccessLayer.FetchEntityForId(this.entityId);
            }
    
            return this.entityToFetch;
        }
    }
    
        2
  •  0
  •   Jake Pearson    15 年前

    可以将选定的属性添加到视图模型中,该属性在对象变为选定对象时得到设置。当选定项变为真时,您可以访问数据库。