gpt4 book ai didi

c# - 在 C# WPF 中为 MVVM 数据绑定(bind)定义属性的简洁方法

转载 作者:太空狗 更新时间:2023-10-30 00:59:06 30 4
gpt4 key购买 nike

在 C# WPF 中是否有一种简洁的方法来定义 ViewModel 中的数据绑定(bind)属性?下面的属性定义非常冗长,尤其是当有很多属性时:

private bool mSomeProperty;

public bool SomeProperty
{
get { return this.mSomeProperty; }
set
{
if (value != this.mSomeProperty)
{
this.mSomeProperty = value;
OnPropertyChanged(new PropertyChangedEventArgs("SomeProperty"));
}
}
}

最佳答案

在 C# 中,我喜欢创建一个基类并在其上放置一些辅助方法。然后我让我的 ViewModels 从它继承。这是内存中的,但它是这样的:

public class Observable : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

protected void SetProperty<T>(ref T backingField, T newValue,
string propertyName)
{
if (Equals(backingField, newValue))
return;
backingField = newValue;
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
}

并且,在使用中:

public class MyClass : Observable
{
private bool m_someProperty;

public bool SomeProperty
{
get { return m_someProperty; }
set { SetProperty(ref m_someProperty, value, "SomeProperty"); }
}
}

关于c# - 在 C# WPF 中为 MVVM 数据绑定(bind)定义属性的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348280/

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