Этот класс Settings
реализует пользовательский EventHandler
(SettingsChangedEventHandler
), используемый для уведомления об изменении свойства для его подписчиков:
Вы можете настроить более сложный пользовательский SettingsEventArgs
для передачи других значений.
Изменение значения свойства public THProperty
вызывает событие:
public static class Settings
{
public delegate void SettingsChangedEventHandler(object sender, SettingsEventArgs e);
public static event SettingsChangedEventHandler SettingsChanged;
private static TH th;
private static int m_Other;
public class SettingsEventArgs : EventArgs
{
public SettingsEventArgs(TH m_v) => THValue = m_v;
public TH THValue { get; private set; }
public int Other => m_Other;
}
public static void OnSettingsChanged(SettingsEventArgs e) =>
SettingsChanged?.Invoke("Settings", e);
public static TH THProperty
{
get => th;
set { th = value; OnSettingsChanged(new SettingsEventArgs(th)); }
}
}
Класс PhrasesFrame
может подписать событие как обычно:
public partial class PhrasesFrame
{
private TH id;
public PhrasesFrame()
{
Settings.SettingsChanged += this.SettingsChanged;
}
private void SetC1Btn()
{
var a = (int)this.id;
//Other operations
}
private void SettingsChanged(object sender, Settings.SettingsEventArgs e)
{
this.id = e.THValue;
SetC1Btn();
}
}