作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个非常简化的 WPF 应用程序,如下所示:
我有一个包含菜单和 ContentControl 的 ApplicationView。
ContentControl 绑定(bind)到由菜单设置并由其相关 View 呈现的 CurrentViewModel 属性( View 和 ViewModel 由 App.xaml 中定义的 DataTemplates 耦合)。
我在 Rachel Lim's blog 上找到了这种方法
所以在这个例子中,我的 View 包含一个职责列表以及当前选定职责的“详细信息”窗口。
这个设置工作正常,但我认为我的 ViewModel 太胖了!
这个 ViewModel 的非简化版本大约有 500 行代码,用于处理:
最佳答案
如果您仍在寻找意见,我会像您在第 1 点中提到的那样做,但您不需要任何消息传递。
您创建两个 VM。比方说 DutiesVM 和 DutyDetailVM。 DutyDetailsVM 仅包含 ID 和 Name 的一些字符串属性。
在 DutiesVM 中,您创建两个属性:
ObservableCollection<DutyDetailVM> DutiesList
DutyDetailVM SelectedDuty
<DockPanel>
<v:DutyDetailV DockPanel.Dock="Right" DataContext="{Binding SelectedDuty}">
<ListBox ItemsSource="{Binding DutiesList}" SelectedItem="{Binding SelectedDuty}"/>
</DockPanel>
关于wpf - 将 View 拆分为两个单独的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047999/
我是一名优秀的程序员,十分优秀!