2017-04-09 5 views
0

私はすべてのUI-EventをViewModelのコマンドに直接バインドしたいと思います。 これを行う方法はありますか?UWPUWPのコマンドへのUi-Eventsのバインド

私はUWPコミュニティツールキットを使用しており、Hamburger-Menu-Item-Clickをコマンドにバインドしたいと考えています。

おかげ トビアス

+0

はい、ありがとうございます!それは私が必要なものです! –

答えて

2

[OK]を私はそのための解決策を見つけました。 あなたはここでそれを見つけることができます: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 - (I参照:...-タグ)ビュー内のコマンドへのメニュー項目のClickイベントをバインドし、私はメニューアイテムをクリックしたときに知って

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

をそれ

関連する問題