我需要將某個數據從一個地方異步發送到另一個地方。 爲此,我使用GalaSoft.MvvmLight.Messaging。如何在Messenger.Default.Send中發送兩個通用參數<param1,param2>
如果我有一個參數發送沒有問題。
Fe。
//Sends
public void SendDriverToClient(Driver driver)
{
Messenger.Default.Send<Driver>(driver, MessengerTokensServer.ReceiveDriver);
}
//Register
Messenger.Default.Register<Driver>(this, MessengerTokensServer.ReceiveDriver, ReceiveDriver);
//Receive
private void ReceiveDriver(Driver driver)
{
//Instructions
}
問題是當我有多個參數發送。
Fe。
public void SendLinesUpdatedInTOToClient(int toTempId, TransportOrder to)
{
Messenger.Default.Send<int, TransportOrder>(*Here I should have to place toTempId & to*, MessengerTokensServer.GetUpdatedTransportOrder);
}
我已經有我自己的解決方案,但可能它不是正確的方法來做到這一點。當前代碼是這樣的:
class ObjectHolder
{
public TransportOrder UpdatedTransportOrder { get; set; }
public int TempId { get; set; }
}
public void SendLinesUpdatedInTOToClient(int toTempId, TransportOrder to)
{
Messenger.Default.Send<ObjectHolder>(new ObjectHolder{UpdatedTransportOrder = to, TempId = toTempId}, MessengerTokensServer.GetUpdatedTransportOrder);
}
謝謝!
我認爲它這樣做,因爲你不能在同一時間發送2個參數的正確途徑。如果需要傳遞更多數據,則需要像創建消息一樣創建消息對象。 – fantastik78
認爲這是不可能的,但不知道。按照Sheridan的建議,我將使用Tuple類。 –