Caliburn.Micro可以很好地使用用户控件吗?

时间:2012-03-06 08:39:30

标签: wpf mvvm user-controls caliburn.micro

我是一名新手WPF程序员。我正在尝试为我的代码添加一些结构:用户控件和MVVM。

在这里研究,我发现people recommend Caliburn.Micro。另一方面,我发现了一些关于Caliburn的问题hereelsewhere。微软没有很好地使用UserControls。

所以我的问题是: Caliburn.Micro能否很好地使用用户控件?

1 个答案:

答案 0 :(得分:37)

是的,Caliburn.Micro可以很好地与用户控件配合使用。这是一个固执己见的框架,但不是强迫你走特定的发展道路。如链接问题的答案所示,如果您有任何特定问题,可以始终使用普通的旧WPF绑定。

事实上,我不会让这两个链接完全阻止你,第一个是描述将单独的属性绑定到单个用户控件的方法,并且解决方案是有效的。更好的解决方案可能是使用ItemsControl和自定义DataTemplate,然后在他的视图模型上创建一个包含属性名称和值的DTO集合。

第二个链接是说明如何创建视图(UserControl)并在XAML中创建视图实例,并希望将其绑定到视图模型,然后首先调用视图,你必须告诉Caliburn.Micro视图模型要绑定到的位置:

<UserControl ...
   cal:Bind.Model="EasyPlayer.MediaControl.NowPlayingViewModel" />

因此,概念上可以将其视为视图模型/视图,而不是具有依赖项属性等的UserControl。

事实上,你会发现当你使用Caliburn.Micro时,你可能会使用越来越少的UserControl来执行视图合成。这是因为使用视图模型,视图和视图模型第一种方法创建可重用的UI非常容易。

如果视图中的ContentControl与父视图模型上的视图模型属性同名,则Caliburn.Micro将找到相应视图模型的视图,将其注入{{ 1}},并绑定视图/视图模型。

例如:

ContentControl