wpf - 我应该在哪里放置 UserControls 列表而不破坏 MVVM?

标签 wpf mvvm

我有一个选项卡控件,其中每个 TabItem 都是一个用户控件。我想将 UserControls 保存在 TabControl 的 ItemsSource 中。 ItemsSource 列表是否在 Window 的 ViewModel 中?如果是这样,我觉得它正在破坏 MVVM,因为 ViewModel 现在将在其中包含 GUI 控件。或者我是否将此列表放在包含选项卡控件的窗口的代码隐藏中?

任何建议都会很棒!

最佳答案

使用选项卡控件,单个选项卡通常是在 XAML 中静态创建的,而不是在运行时通过数据绑定(bind)创建的。但是,您没有理由不这样做。如果您有一组 View ,则绝对应该将它们存储在 View 中。

请记住,您还可以将 ItemsSource 绑定(bind)到 ViewModels 对象列表,WPF 将使用 ItemTemplate 为您生成一个 View ,并将 ViewModel 对象设置为 DataContext。这个 ViewModel 集合应该存储在 View 模型中,尽管在某些时候 View 模型显然必须存储在 View 中。

关于wpf - 我应该在哪里放置 UserControls 列表而不破坏 MVVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194674/

相关文章:

WPF多按钮背景颜色变化

wpf - 如何更改 AvalonEdit CodeCompletion 窗口上的样式?

c# - wpf C# 中的内存泄漏

wpf - 如何撤消由绑定(bind)引起的 TextBox 的文本更改?

jquery - knockout - 取消变更事件?

c# - (UWP) 当你 x :Bind an event to a eventhandler in VM, 导航到新 View 时是否必须手动取消绑定(bind)?

c# - WPF MVVM 代码隐藏

wpf - 带有 IoC 容器的 WPF 中的 UnitOfWork 生命周期

c# - 组合框触发空选择

MVVM:删除一个 CustomerViewModel,但如何获取其中的 Customer 模型?