在任何大型应用程序中,我都有这个问题:
我正在构建窗口外观,我希望它有例如左边的菜单,中间的一些内容等。
现在,如果我想重用一些这些东西(大部分)或者只是我不想将它全部保存在一个xaml文件中,我该怎么做?直到现在我习惯这样做:
在主窗口(xaml)中我放了:
<DockPanel>
<ContentControl Content="{Binding Menu}" DockPanel.Dock="Left"/>
<ContentControl Content="{Binding MainStuff}"/>
</DockPanel>
在主WindowViewModel中我放了:
Menu = new MenuViewModel();
MainStuff = new MainStuffViewModel();
有时候那些VModel必须提供给MainViewModel但很少。
这种方法不是很好我在主窗口xaml编辑器中看不到我的设计(有时我可以看到它,我不知道,视觉可能尝试在编译之前进行绑定但有时它会失败,我不知道我想考虑一下:))
这里的专业方法是什么?
答案 0 :(得分:1)
您的MenuViewModel有相应的MenuView吗?
在这种情况下,您可以像下面这样替换ContentControl:
<DockPanel>
<prefix:MenuView DataContext="{Binding Menu}" DockPanel.Dock="Left"/>
<prefix:MainStuffView DataContext="{Binding MainStuff}"/>
</DockPanel>
通过这种方式,您可以获得MenuView-和MainStuffView-usercontrols的设计视图
答案 1 :(得分:0)
大型应用程序需要摆脱它的整体形式,以便可重用,可组合 - 您正在寻找Prism。为您的部分创建区域,并将您的使用控件转换为视图并注入它们。