2011-06-30 66 views
0

我無法讓我的ViewModel收到IActiveAware通知。PRISM Silverlight 4 MEF - IActiveAware

我的視圖通過View Discovery在該地區註冊。

_regionManager.RegisterViewWithRegion(
    RegionNames.ListRegion, typeof(AlarmListView)); 

並且ViewModel實現IActiveAware,但是當視圖變爲活動狀態時,它永遠不會被設置。我錯過了什麼?

我的視圖模型被註冊,像這樣:

/// <summary>The alarm list view model.</summary> 
[Export(typeof(IAlarmListViewModel))] 
public class AlarmListViewModel : 
    AsyncNotificationObject, 
    IActiveAware, 
    IAlarmListViewModel { ... } 

,並導入到視圖像這樣:

[Import] 
public IAlarmListViewModel ViewModel 
{ 
    get 
    { 
     return (IAlarmListViewModel)DataContext; 
    } 
    set 
    { 
     DataContext = value; 
    } 
} 
+0

您的視圖模型是如何註冊的? –

+0

@hitech Magic:查看更新後的問題。謝謝。 –

+0

您的ListRegion映射到哪個控件?我相信這是由於各種控制對活動有不同的概念,所以稱爲激活/停用。 – CodeNaked

回答

0

我猜IsActive只會當您瀏覽通過_regionManager.RequestNavigate來改變你的看法或_region.Activate(view)。在你的情況下,你可以在view.Loadedview.GotFocus事件上設置IsActive