我想将任何 UI 事件直接绑定到我的 ViewModel 中的命令。有没有办法在UWP中做到这一点?
我正在使用 UWP 社区工具包并希望将 Hamburger-Menu-Item-Click 绑定到命令。
谢谢托拜厄斯
我想将任何 UI 事件直接绑定到我的 ViewModel 中的命令。有没有办法在UWP中做到这一点?
我正在使用 UWP 社区工具包并希望将 Hamburger-Menu-Item-Click 绑定到命令。
谢谢托拜厄斯
好的,我找到了解决方案。你可以在这里找到它:UWP 中的行为(事件触发命令错误
我将在这里重复我的步骤:
1 - 安装包
Install-Package Microsoft.Xaml.Behaviors.Uwp.Managed
2 - 包括对您视图的引用
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
3-将命令添加到您的 ViewModel
public DelegateCommand MenuItemCommand { get; set; }
public void InitCommands()
{
MenuItemCommand = new DelegateCommand(MenuItemClicked);
}
private void MenuItemClicked()
{
//do something when clicked
}
4 - 将菜单项的 Click-Event 绑定到视图中的命令(参见 i:...-tag)
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<controls:HamburgerMenu x:Name="HamburgerMenuControl"
PaneBackground="Black"
Foreground="White"
ItemTemplate="{StaticResource DefaultTemplate}"
OptionsItemTemplate="{StaticResource DefaultTemplate}"
ItemsSource="{Binding MenuItems}"
OptionsItemsSource="{Binding MenuOptionItems}"
>
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="ItemClick">
<core:InvokeCommandAction Command="{Binding MenuItemCommand}"></core:InvokeCommandAction>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
<Frame x:Name="ContentFrame"/>
</controls:HamburgerMenu>
</Grid>
当我知道单击菜单项时