将多个Caliburn.Micro视图模型绑定到同一视图的不同实例

萨克斯主义者

我正在使用CM和WPF进行一些数据演示,并且某些数据选项卡具有非常相似的格式,但必须作为选项卡的一部分包含在包含选项卡的单独VM中。

我最初的想法是,我可以在VM中以编程方式执行此操作,方法是在VM对象上查找与Views有关的任何属性(其本身是Screen对象的派生。)其直接超类用作合同,[ImportMany]以便父VM和视图可以将集合制成表格。

[ImportingConstructor]
    public PartiesMasterPartiesViewModel(
          IEventAggregator events, 
          IHelpService help, 
          ResourceManager<B_Action> actionResource, 
          IActionService actionService)
        : base( events,  help, actionResource, actionService)
    {
    }
    protected override void OnActivate()
    {
        base.OnActivate();
        this.Views.Add(new KeyValuePair<object, object>(this, 
           new PartiesMasterListView()));
    }

因此,要么我没有正确使用此属性,要么它没有执行我认为的功能,因此我需要使用另一种方式。

我正在考虑的另一种方式是,显式实例化同一视图模型的多个实例,然后将它们手动添加到集合中,但这似乎违反了MEF的[ImportMany]操作,从而削弱了应用程序的设计。

奈杰尔·桑普森(Nigel Sampson)

实现由多个视图模型共享的视图的最简单方法是ViewLocator使用一些额外规则配置

在此示例中,我有两个视图模型Examples.ViewModels.SharedData1ViewModelExamples.ViewModels.SharedData1ViewModel一个视图Examples.Views.SharedDataView,我希望将其作为Caliburn.Micro在默认情况下为两者定位的视图。

在我的设置代码中,我可以将以下简单的正则表达式添加到中ViewLocator

ViewLocator.NameTransformer.AddRule(
    @"^Examples.ViewModels\.SharedData(\d+)ViewModel",
    @"Examples.Views.SharedDataView");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Caliburn Micro中绑定视图和模型

如何将数据从同一视图模型和同一可观察数组绑定到多个区域?

将一个模型从局部视图传递到父视图,然后将另一个模型绑定到同一父视图

如何在多个Partail视图上应用验证,这些视图绑定到MVC中的模型的同一属性?

将多个敲除视图模型脚本绑定到一个视图

如何使用Caliburn.Micro将容器绑定到MVVM标准中的列表视图控件?

Caliburn Micro自替换视图/视图模型

Caliburn Micro,动态加载的视图/视图模型

将部分视图模型发布到同一MVC页面

将另一个模型绑定到局部视图,例如嵌套的局部视图绑定

将媒体元素绑定到视图模型

将模型数据绑定到视图-Spring

将实例变量从模型传递到视图

如何使用Caliburn.Micro MVVM在WPF中的同一视图上从另一个视图模型更新list <>?

将实体框架结果从视图模型绑定到视图

如何将TabControl内容的数据上下文绑定到ObservableCollection中的视图模型的实例

在MVC 5中使用ajax.actionlink动态调用同一局部视图的多个实例时,模型绑定不起作用

WPF 使用数据模板将视图模型绑定到多个视图

Android体系结构组件:同一视图模型的多个实例

Caliburn Micro事件在视图/视图模型关闭时

将多个视图绑定到同一个数据上下文 (WPF-MVVM)

从多个不同的“主干/需求”视图中使用同一对象实例

使用Caliburn Micro将WebView2绑定到ViewModel

Caliburn.Micro-将ValueTuple的ObservableCollection绑定到ComboBox

将UserControl绑定到ViewModel(Caliburn Micro WPF)

在laravel中将多个模型绑定到一个视图控制器

如何将多个模型中的数据绑定到单个视图中的列表

如何将列表模型绑定到视图?

WPF将IsEnabled绑定到视图模型上的方法