gpt4 book ai didi

wpf - MVVM - 直接绑定(bind)到从 VM 公开的模型对象,或在 VM 中实现单独的属性来访问模型属性

转载 作者:行者123 更新时间:2023-12-02 10:41:48 25 4
gpt4 key购买 nike

抱歉,如果标题令人困惑,但我真的不知道如何缩短我的问题。不管怎样,就这样吧。

我正在使用 WPF、 Entity Framework 和 MVVM。

目前,在我的 ViewModel 中,我有一个属性

public Model.Document Document {get;set;} //Model.Document is an EF Entity

然后,在 XAML 中,我绑定(bind)到

<TextBox Text={Binding Path=Document.Title}/>

标题当然是模型上的一个属性。

现在我想到了以下问题:为了将模型与 View 分离,如果我像这样向 ViewModel 添加一个属性不是更好

    public string Title
{
get { return Document.Title; }
set { Document.Title = value; }
}

然后像这样绑定(bind):

<TextBox Text={Binding Path=Title}/>

推荐哪种方式?

最佳答案

如果你看一下 How Data Binding References are Resolved ,您可以看到,在决定如何公开要绑定(bind)到的属性时,可能需要考虑性能问题。

Model.Document 是否实现 INotifyPropertyChanged界面?如果没有,我建议将 Title 属性添加到您的 View 模型中,并在您的 View 模型上实现 INotifyPropertyChanged,这样当标题更改时 PropertyChanged引发事件以通知 View 。

另一种方法是将 View 模型上的标题公开为 DependencyProperty因为绑定(bind)和渲染时间更快。

关于wpf - MVVM - 直接绑定(bind)到从 VM 公开的模型对象,或在 VM 中实现单独的属性来访问模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com