gpt4 book ai didi

c# - 有没有更好的方法在 ViewModel 上编写这段代码?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:49 26 4
gpt4 key购买 nike

作为 MVVM 和 WPF 的新手,我发现自己在我的 ViewModel 中编写了大量几乎相同的代码来公开属性,然后绑定(bind)到我的 WPF 控件上。像这样:

private Vendedores _vendedorsel;
public Vendedores VendedorSel
{
get
{
return _vendedorsel;
}

set
{
this._vendedorsel = value;
OnPropertyChanged("VendedorSel");
}
}

有没有更好的方法来做到这一点,而无需太多相似的代码?也许涉及继承的东西?谢谢。

最佳答案

您可以通过在基本方法中使用 CallerMemberName 来稍微减少它,如果您重命名该属性,这也会使重构更容易:

protected virtual void OnPropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChangedEventArgs ea = new PropertyChangedEventArgs(propertyName);
if (PropertyChanged != null)
PropertyChanged(this, ea);
}

这会将您的属性代码缩减为:

public Vendedores VendedorSel
{
get
{
return _vendedorsel;
}
set
{
this._vendedorsel = value;
OnPropertyChanged();
}
}

您可以通过使用 Geek 的回答中提到的框架获得类似的 yield ,但在大多数情况下仍然需要一定数量的样板文件。面向方面的编程可用于为您将所有这些东西注入(inject)到自动属性中,但如果您不使用 AOP 做任何其他事情,这也可能需要承担很多工作。

通常减轻这种痛苦的最好方法是一些好的片段来为您生成样板文件。

关于c# - 有没有更好的方法在 ViewModel 上编写这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073237/

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