私は WPF アプリケーションを構築していますが、WPF を使用することの喜びとフラストレーションのいくつかをゆっくりと明らかにしています。私の最新の質問には、UI を使用して更新することが含まれますINotifyPropertyChanged
私のアプリは UserControls を積み重ねており、それぞれ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
多くの get/set コードではなく、多くのコントロールのイベントを発生させるより洗練された方法はありますか?コントロールごとに個別のイベントを発生させるのではなく、複数のコントロールを含む
PropertyChanged
全体をカバーする1 つのイベントを発生させる方法はありますか?UserControl
私が試みている方法よりも良い方法はありますか?