WPF 命令和自定义控件

问题描述 投票:0回答:1

我正在制作一个自定义控件,它是一个可扩展/可折叠面板,然后我可以用其他控件填充它。我不确定如何将展开/折叠命令挂接到按钮上。

我用它来让面板监听:

    CommandManager.RegisterClassInputBinding(GetType(Button), New InputBinding(ToggleBtnCommand, New MouseGesture(MouseAction.LeftClick)))
    CommandManager.RegisterClassCommandBinding(GetType(Button), New CommandBinding(ToggleBtnCommand, AddressOf btnToggleState))

只要我每个窗口只使用一个面板,这就可以了。如果我使用更多面板,则按下按钮时所有面板都会展开或折叠。我怎样才能让控件明白只有包含按下的按钮(“命令触发器”)的控件才应该监听命令?

wpf command custom-controls
1个回答
0
投票

在您的 ToggleBtnCommand (实际上是由但我个人从名称中删除 Btn,因为命令与 UI 无关) - 执行处理程序中,您将 ExecutedRoulatedEventArgs 作为第二个参数,通过比较其 Source 和 OriginalSource,您可以判断它是否是是否是“本地”命令。

© www.soinside.com 2019 - 2024. All rights reserved.