1、寫一個監聽值變化的類
public class MonitorValueChange { private Visibility myValue; public Visibility MyValue { get { return myValue; } set { if (value != myValue) { WhenMyValueChange(); } myValue = value; } } //定義的委托 public delegate void MyValueChanged(object sender, EventArgs e); //與委托相關聯的事件 public event MyValueChanged OnMyValueChanged; //事件觸發函數 private void WhenMyValueChange() { if (OnMyValueChanged != null) { OnMyValueChanged(this, null); } } }
2、調用該類監聽數據
MonitorValueChange change = new MonitorValueChange(); change.MyValue = Visibility.Visible; change.OnMyValueChanged += Change_OnMyValueChanged; change.MyValue = Visibility.Collapsed; private void Change_OnMyValueChanged(object sender, EventArgs e) { //要做的操作 }