【问题标题】:PRISM Silverlight 4 MEF - IActiveAwarePRISM Silverlight 4 MEF - IActiveAware
【发布时间】:2011-09-25 17:40:36
【问题描述】:

我无法让我的 ViewModel 接收 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;
    }
}

【问题讨论】:

  • 你的视图模型是如何注册的?
  • @hitech Magic:查看更新后的问题。谢谢。
  • 您的 ListRegion 映射到什么控件?我相信调用激活/停用取决于此,因为各种控件对可以激活的内容有不同的概念。
  • @CodeNAked:我正在使用 ContentControl

标签: silverlight mvvm prism


【解决方案1】:

我猜IsActive 只有当您通过_regionManager.RequestNavigate_region.Activate(view) 导航到您的视图时才会更改。在您的情况下,您可以在 view.Loadedview.GotFocus 事件上设置 IsActive

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多