【问题标题】:WPF How to call User Control Command from window RibbonWPF如何从窗口功能区调用用户控制命令
【发布时间】:2017-01-31 09:18:54
【问题描述】:

这是一个 Dejavù 问题,我昨天晚上问过,但可能我没有正确发布它,因为该问题不在我的个人资料中。如果你找到它,请不要因为双重问题而杀了我。

正如主题中所述,我第一次在 WPF 中实现类似视觉工作室的界面,我在 MSDN 上阅读了命令目标和命令源文章,但我仍然无法找到一个好的示例向我解释以下内容: 如果我的主窗口带有功能区和 4 个 crud 基本按钮,插入、删除、保存和撤消,那么我有几个用户控件,一个用于每个表或一组相关表,我将控件放在停靠管理器中在主窗口中创建 Tab Like 对象,如何绑定功能区命令,以便针对当前“聚焦”用户控件执行它们,用户当前正在查看的控件? 提前谢谢你

【问题讨论】:

标签: c# wpf user-controls command


【解决方案1】:

我遇到了同样的情况,并以某种方式设法实现了它。以下是我的想法。

  1. 使用 Crud 命令创建 IBaseViewModel,
  2. 编写从 BaseViewModel 继承的单独类,并确保它们是每个 UserControl 的 DataContext。
  3. 从 DockingManager 的 Selected 子项设置 Ribbon DataContext(我最终编写了附加属性以查找 Selected 子项。)

【讨论】:

  • 我建议稍微更改第 3 步。我不喜欢交换 Datacontexts。如果您忘记自己正在这样做(我已经这样做了),可能会导致奇怪的问题。如果您已经必须遍历可视化树,我将只对对象进行操作。我建议: 3. 找到选定的孩子,检查它的DataContextBaseViewModel(我更喜欢使用接口,所以IBaseViewModel)。然后,您可以直接调用 Base 方法:((IBaseViewModel)MySelectedView.DataContext).Create()。你可以变得更漂亮。但我以前做过这样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
相关资源
最近更新 更多