WPF 将一个 ViewModel 用于多个 UserControls

标签 wpf binding user-controls viewmodel datacontext

我已经搜索了很多这个问题的答案,但找不到答案。

我有我的主窗口和4个不同的UserControlsWindow 由所有 4 个 UserControls 构建而成。

我有一个类,它是WindowViewModel

我希望将 WindowDataContext 和所有 4 个 UserControls 设置为 WindowViewModel.

问题在于,将类编写为控件的 DataContext 会创建该类的新实例,因此,我无法使用正在填充的容器。

有办法做到这一点吗?

最佳答案

DataContext 在 WPF 中继承。

如果您没有为 UserControl 设置 DataContext,它们将自动继承其父级的 DataContext(Window),并且应该直接使用您的 ViewModel。

关于WPF 将一个 ViewModel 用于多个 UserControls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30764329/

相关文章:

objective-c - 使用 NSTreeController,我是否必须在更改模型数组时手动重新加载 NSOutlineView?

c# - ComboBox 绑定(bind)到引用的(相对)源

user-controls - 在 Unity3d 中添加操纵杆,直接添加场景或从播放器脚本启动它是正确的方法

c# - 回发时 IE 中的 ViewState 错误

WPF4 DatePicker - 添加时间

c# - 主窗口关闭时应用程序不会退出

c# - 如何使用 DisplayMemberPath 显示特定列中的项目

c# - 我应该使用 AutomationPeer 还是 AutomationElement?或两者?

c# - 将 ComboBox SelectedValue 绑定(bind)到字符串会禁用默认的 SelectedValue wpf

c# - 如何使用 WinForms 数据绑定(bind)正确触发 UserControl 中值的更改?