MVVM 패턴을 사용하여 ItemClick
및 OptionItemClick
이벤트를 바인딩하여 명령을 시도합니다. 문서 https://developer.microsoft.com/en-us/windows/uwp-community-toolkit/api/microsoft_toolkit_uwp_ui_controls_hamburgermenu에 따르면 Command
은 바인딩 할 수 없습니다. 그래서 https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Uwp.Managed/ 패키지를 사용하여 내 이벤트 트리거를 명령에 연결하려고합니다.MVVM 명령 UWP 툴킷 햄버거 메뉴에 바인딩
내 XAML 코드는 모든 코드의
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
xmlns:localModel="using:App1.Models"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
mc:Ignorable="d">
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<localTemplate:TemplatesResourceDictionary/>
</ResourceDictionary.MergedDictionaries>
<DataTemplate x:Key="DefaultTemplate" x:DataType="localModel:MenuItem">
<Grid Width="240" Height="48" Margin="0,0,0,0" HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="48" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<SymbolIcon Grid.Column="0" Symbol="{x:Bind Icon, Mode=OneWay}" Foreground="White" />
<TextBlock Grid.Column="1" Text="{x:Bind Name, Mode=OneWay}" FontSize="16" VerticalAlignment="Center" Foreground="White" />
</Grid>
</DataTemplate>
</ResourceDictionary>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<controls:HamburgerMenu x:Name="hamburgerMenuControl"
Grid.Row="0"
Grid.Column="0"
PaneBackground="Black"
Foreground="White"
DisplayMode="CompactOverlay"
ItemsSource="{Binding Path=MainMenuItems}"
ItemTemplate="{StaticResource DefaultTemplate}"
OptionsItemsSource="{Binding Path=OptionMenuItems}"
OptionsItemTemplate="{StaticResource DefaultTemplate}"
OptionsItemClick="OnMenuItemClick">
<i:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="ItemClick">
<ic:InvokeCommandAction Command="{Binding Path=NavigateCommand}" />
</ic:EventTriggerBehavior>
</i:Interaction.Behaviors>
<Frame x:Name="contentFrame" />
</controls:HamburgerMenu>
</Grid>
</Page>
먼저 VS2017에 재미있는 모양이지만, 그것은 컴파일 오류를 생성하지 않습니다. 내가 코드를 실행하고 메뉴 항목을 클릭하면
둘째, 내부에 생성 된 코드 발생한 예외는 다른 디버거를 시작하는 나에게 물어가 추가 메시지도
와 App.g.i.cs입니다.
디버거가 App1.exe에 연결되었지만이 처리되지 않은 예외를 디버그하도록 구성되지 않았습니다. 이 예외를 디버그하려면 현재 디버거를 분리합니다.
실마리, 내보기 모델에 명령을 바인딩하는 적절한 방법은 무엇입니까?
'(sender, e)'부분에서'e' 위로 마우스를 가져 가면 정확한 예외가 발생합니다. 게시물에 대한 세부 정보를 업데이트해도 안 좋을 것입니다. –