对于this page,DropDownButton使用ContextMenu显示ItemsSource。我们如何知道用户点击了什么?按钮上的Click事件不属于菜单,而是按钮本身。我没有看到其他事件。
最佳答案
我遇到了这个问题,希望找到相同的答案。我从来没有真正在网上找到任何东西,而是自己发现了这个解决方案。也许它将对将来的某个人有所帮助。
如前所述,DropDownButton
使用ContextMenu
显示其ItemsSource
。基本上我在寻找的是一个来自按钮的“菜单式”下拉菜单。例如,假设您有一个表示“添加”的DropDownButton
。也许您想要2个选项,例如“添加新”和“添加现有”。这就是我所做的...
首先,我做了一些对象来保存标题/内容和命令。
public class TitledCommand
{
public String Title { get; set; }
public ICommand Command { get; set; }
}
从理论上讲,您将拥有这些列表以绑定(bind)到
ItemsSource
的DropDownButton
。public List<TitledCommand> TitledCommmands { get; private set; }
现在,我们只为
DropDownButton
设置项目容器的样式,以便它从ItemsSource
中的对象中拾取标题和命令。包括MahApps:
xmlns:metroControls="http://metro.mahapps.com/winfx/xaml/controls"
这是风格...
<metroControls:DropDownButton Content="Add" ItemsSource="{Binding Path=TitledCommmands}">
<metroControls:DropDownButton.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=Title}"/>
<Setter Property="Command" Value="{Binding Path=Command}"/>
</Style>
</metroControls:DropDownButton.ItemContainerStyle>
</metroControls:DropDownButton>
关于c# - 如何知道在DropDownButton中单击了什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23019282/