将Ui-Events绑定到UWP中的命令

时间:2017-04-09 09:06:55

标签: c# mvvm uwp windows-community-toolkit

我想将任何UI-Event直接绑定到我的ViewModel中的命令。 有没有办法在 UWP 中执行此操作?

我正在使用UWP社区工具包,并希望将Hamburger-Menu-Item-Click绑定到命令。

由于 托拜厄斯

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方法。 您可以在此处找到它:Behaviors in UWP (Event trigger command error

我将在此重复我的步骤:

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 - 将menuitem的Click-Event绑定到视图中的命令(参见i:...-标签)

<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>

当我知道点击菜单项