更改窗口特定区域中的数据,Caliburn.Micro,WPF

时间:2018-03-06 04:07:47

标签: wpf user-controls caliburn.micro

这是我的需要。我认为用户控制是我需要的,但我不确定它是最好的还是如何使用它。

我有什么。我的主窗口有一个带有" help"菜单。当你点击帮助时,会打开一个新窗口,我有一个列,在左栏的顶部有一个下拉框" Major Titles&#34 ;,下面的ListBox根据组合框选择填充。这将是窗口宽度的约25%。这一切都有效。

当我在列表框中选择一个项目页面时,contentControl或用户控件显示在右侧,带有Verticle滚动条,因此窗口不需要调整大小,我显示的信息会根据列表框选择而改变只有文本块,标签,图像等视觉效果。没有用户与可更改页面的交互只是格式化数据。

最好的方法是什么?谁能提供一个简单的例子?

我正在考虑使用用户控件并根据所选列表框项更改用户控件。

1 个答案:

答案 0 :(得分:0)

好的,我得到了这个数字。看完了很多帖子和博客。似乎人们有时想让事情变得更加复杂。

我想要的是,窗口左侧1/6处的永久列表框。列表框包含"帮助主题"的字符串名称。在屏幕的右边5/6,我添加了一个带有标题的分组框,在组框中我添加了一个usercontrol。控件的内容绑定到名为' ActiveView'的属性。列表框选择的值属性绑定到' SelectedListItem'属性。

当你改变它时,设置' SelectedListItem'一种叫做SetActiveControl'的方法。 SetActiveControl有一个开关/案例,其设置如下例所示:

``Case "Setup":
             ActiveView = new       SomeSelectionViewModel();
             Break;

我在Views文件夹中名为HelpControls的文件夹中创建了一个用户控件,我还在ViewModels中创建了相同的文件夹。我有与用户控件匹配的类,所有内容都绑定在一起。

最终,当您单击列表框项时,将调用关联的ViewModel,然后使用适当的数据填充窗口上的用户控件。

我需要稍后查看,使用一个ViewModel进行所有控件,我知道可以使用Cal:Model.View = ViewModel名称来完成。在控件的xaml中。我只是不确定在选择项目时如何调用适当的用户控件视图。无论哪种方式,这将成为视图的第一个设计,我想我读,Caliburn。 Micro旨在作为ViewModel的第一个设计。