我是一名新手WPF程序员。我正在尝试为我的代码添加一些结构:用户控件和MVVM。
在这里研究,我发现people recommend Caliburn.Micro。另一方面,我发现了一些关于Caliburn的问题here和elsewhere。微软没有很好地使用UserControls。
所以我的问题是: Caliburn.Micro能否很好地使用用户控件?
答案 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