【问题标题】:pass the window using a CommandParameter from a ContextMenu使用 ContextMenu 中的 CommandParameter 传递窗口
【发布时间】:2014-08-27 20:39:42
【问题描述】:

目标是在 MVVM 解决方案中使用硬编码 WPF NotifyTrayIcon 隐藏/显示任务托盘中的窗口。问题是CommandParameter 似乎总是为空,这当然会导致代码崩溃。我尝试了许多不同的绑定,包括:

CommandParameter="{Binding Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}}"

CommandParameter="{Binding ElementName=window, Mode=OneWay}"

等等,但一切都传回一个空值,有什么建议吗?

谢谢

【问题讨论】:

  • 查看输出窗口以查看 WPF 调试消息,上下文菜单也与可视化树分离,请参阅 PlacementTarget。
  • 随心所欲,因为将窗口传递给视图模型不是 MVVM。

标签: c# wpf mvvm trayicon


【解决方案1】:

如果你只有一个窗口,那么你可以简单地使用Application.Current.MainWindow

如果你有更多,那么你可以在Application.Current.Windows 收藏中搜索好的。

【讨论】:

  • 这没有回答问题,但是解决了问题,谢谢。
  • @DukeNukem “越简单越好”是我们在 IT 中经常忘记的一条规则。 :)
  • 这对我一点帮助都没有,我怀疑还有很多其他人。正如@DukeNukem 所说,它没有回答问题,我仍然可以;在该对话中,不能将当前对话作为命令参数传递给“取消”按钮的命令参数。
猜你喜欢
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2012-12-14
  • 2017-08-06
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多