我個人更喜歡使用delegate
來達到這個目的,因爲我可以爲它設置自己的輸入參數。我會做這樣的事情:
public delegate void ValueChanged(object oldValue, object newValue);
使用object
作爲數據類型將允許你在NumericUpDown
控制使用不同的數值類型,但你不得不每次它轉換爲正確的類型..我想這個發現有點痛的,所以如果你的控制將只使用一種類型,int
例如,那麼你可以改變你的delegate
這樣:
public delegate void ValueChanged(int oldValue, int newValue);
那麼你就需要爲公共財產控制器的用戶附加處理程序:
public ValueChanged OnValueChanged { get; set; }
使用像這樣:
NumericUpDown.OnValueChanged += NumericUpDown_OnValueChanged;
...
public void NumericUpDown_OnValueChanged(int oldValue, int newValue)
{
// Do something with the values here
}
當然,這是沒有好,除非我們實際上是從控制內部調用該委託,並讓我們不要忘記的情況下,檢查null
沒有處理程序已經被附:
public int Value
{
get { return theValue; }
set
{
if (theValue != value)
{
int oldValue = theValue;
theValue = value;
if (OnValueChanged != null) OnValueChanged(oldValue, theValue);
NotifyPropertyChanged("Value"); // Notify property change
}
}
}
創建一個事件,並在主要應用 – ethicallogics
訂閱它,我認爲你可以從**純WPF的東西定製'NumericUpDown' **,'WPF'在'System.Windows.Controls.Primitives'一個的RepeatButton,只需添加一些'Te xtBox「和驗證。你可以有一個更優雅的數字下降。搜索這將幫助你與一些*樣本* –