如:
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += (o, e) => { dispatcherTimer_Tick(o, e, driverVM); };
dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
dispatcherTimer.Start();
上述紅色代碼處,dispatcherTimer.Tick接受的委托為void dispatcherTimer_Tick(object sender, EventArgs e),
這里只接受兩個參數,但如果我們想再傳入一個自定義類型的參數呢,可以利用Lambda表達式,再方法的外面以該委托的標准
封裝多一層方法,做法如上述紅色代碼所示,相當於外層的匿名方法 (o, e) =>{}才是傳給Tick的委托,而下面這個方法才是
我們真正想做的事情:
private void dispatcherTimer_Tick(object sender, EventArgs e, DriverViewModel driverVM)
{
....
}