我正在构建一个 WPF 应用程序,我正在慢慢地发现使用 WPF 的一些乐趣和挫败感。我的最新问题涉及使用更新 UIINotifyPropertyChanged
我的应用程序堆叠了用户控件,每个控件都UserControl
包含多个控件,因此总体上有数百个控件每秒更新一次,提供实时数据。为了更新所有控件,我正在使用类似于下面的东西,它目前可以按预期工作。
namespace ProjectXAML
{
public partial class ProjectX : UserControl, INotifyPropertyChanged
{
#region Declare Getter/Setter with INotifyPropertyChanged groupx3
private string m_group1Text1;
public string group1Text1
{
get
{
return m_group1Text1;
}
set
{
m_group1Text1 = value;
NotifyPropertyChanged("group1Text1");
}
}
private string m_group1Text2;
public string group1Text2
{
get
{
return m_group1Text2;
}
set
{
m_group1Text2 = value;
NotifyPropertyChanged("group1Text2");
}
}
private string m_group2Text1;
public string group2Text1
{
get
{
return m_group2Text1;
}
set
{
m_group2Text1 = value;
NotifyPropertyChanged("group2Text1");
}
}
private string m_group2Text2;
public string group2Text2
{
get
{
return m_group2Text2;
}
set
{
m_group2Text2 = value;
NotifyPropertyChanged("group2Text2");
}
}
private string m_group3Text1;
public string group3Text1
{
get
{
return m_group3Text1;
}
set
{
m_group3Text1 = value;
NotifyPropertyChanged("group3Text1");
}
}
private string m_group3Text2;
public string group3Text2
{
get
{
return m_group3Text2;
}
set
{
m_group3Text2 = value;
NotifyPropertyChanged("group3Text2");
}
}
#endregion
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
/// Notifies the property changed.
private void NotifyPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
#endregion
}
}
我的问题是:
PropertyChanged
有没有一种更优雅的方式来为大量控件而不是大量获取/设置代码引发事件?有没有办法引发 1 个
PropertyChanged
事件,涵盖UserControl
包含多个控件的整个事件,而不是每个控件的单独事件?有没有比我正在尝试的更好的方法?