2010-07-05 53 views
4

我試圖讓RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)工作,但無法使其工作。RaisePropertyChanged <T>(字符串propertyName,T oldValue,T newValue,布爾廣播)

我沒有在任何現實世界中實現它,只是爲了學習它。如果我提出廣播通常僅僅然後它 Messenger.Default.Send<PropertyUpdateeMessage>(new PropertyUpdateeMessage("test"));

所以我想知道我失去了什麼,提前使用RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)

感謝。

問候 Raki酒

回答

15

這花了我一點弄清楚了。基本上你必須協調你正在註冊的消息和你發送的消息,但是沒有很多關於它的文檔。

我有一個完整的工作示例here,但這裏的果殼中的信息:

首先,報名參加PropertyChangedMessage指定回事總線上的類型

Messenger.Default.Register<PropertyChangedMessage<ObjectICareAbout>>(
    this, 
    (action) => DispatcherHelper.CheckBeginInvokeOnUI(
       () => DoWorkOnObject(action.NewValue) 
       ) 
); 

然後發送出去的郵件當主虛擬機的屬性發生變化時

RaisePropertyChanged(SelectedItemPropertyName, oldValue, value, true); 

發送消息時可以使用一些消歧選項並註冊聽到它,但這是基本的工作原理。

+0

謝謝克里斯。這幫了我很多:) – user383663 2010-07-06 01:35:00

+2

太棒了!如果您不介意將此答案標記爲已接受,那將確實有助於我的聲譽。 – 2010-07-06 02:58:45

相關問題