Skip to content

Commit b9e7923

Browse files
committed
Strongly type Nav View to enum
1 parent bd0b15b commit b9e7923

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ListDetailsView/ListDetailsView.bind

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,20 @@
7474
</controls:ListDetailsView.NoSelectionContentTemplate>
7575
<controls:ListDetailsView.ListCommandBar>
7676
<CommandBar>
77+
<!-- Button functionality to be implemented by developer -->
7778
<AppBarButton Icon="Back" Label="Back"/>
7879
<AppBarButton Icon="Forward" Label="Forward"/>
79-
80-
<CommandBar.Content>
81-
<TextBlock Margin="12,14">
82-
<Run Text="{Binding Emails.Count}" />
83-
<Run Text="Items" />
84-
</TextBlock>
85-
</CommandBar.Content>
86-
</CommandBar>
80+
<CommandBar.Content>
81+
<TextBlock Margin="12,14">
82+
<Run Text="{Binding Emails.Count}" />
83+
<Run Text="Items" />
84+
</TextBlock>
85+
</CommandBar.Content>
86+
</CommandBar>
8787
</controls:ListDetailsView.ListCommandBar>
8888
<controls:ListDetailsView.DetailsCommandBar>
8989
<CommandBar>
90+
<!-- Button functionality to be implemented by developer -->
9091
<AppBarButton Icon="MailReply" Label="Reply" />
9192
<AppBarButton Icon="MailReplyAll" Label="Reply All" />
9293
<AppBarButton Icon="MailForward" Label="Forward" />

Microsoft.Toolkit.Uwp.UI.Controls.Layout/ListDetailsView/ListDetailsView.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using Windows.UI.Xaml.Controls;
1111
using Windows.UI.Xaml.Input;
1212
using Windows.UI.Xaml.Navigation;
13+
using NavigationView = Microsoft.UI.Xaml.Controls;
1314

1415
namespace Microsoft.Toolkit.Uwp.UI.Controls
1516
{
@@ -42,12 +43,12 @@ public partial class ListDetailsView : ItemsControl
4243
private AppViewBackButtonVisibility? _previousSystemBackButtonVisibility;
4344
private bool _previousNavigationViewBackEnabled;
4445

45-
// Int used because the underlying type is an enum, but we don't have access to the enum
46-
private int _previousNavigationViewBackVisibilty;
46+
private NavigationView.NavigationViewBackButtonVisible _previousNavigationViewBackVisibilty;
47+
private NavigationView.NavigationView _navigationView;
48+
4749
private ContentPresenter _detailsPresenter;
4850
private VisualStateGroup _selectionStateGroup;
4951
private Button _inlineBackButton;
50-
private Microsoft.UI.Xaml.Controls.NavigationView _navigationView;
5152
private Frame _frame;
5253

5354
/// <summary>
@@ -199,7 +200,7 @@ private void OnLoaded(object sender, RoutedEventArgs e)
199200
_frame.Navigating -= OnFrameNavigating;
200201
}
201202

202-
_navigationView = this.FindAscendant<Microsoft.UI.Xaml.Controls.NavigationView>();
203+
_navigationView = this.FindAscendant<NavigationView.NavigationView>();
203204
_frame = this.FindAscendant<Frame>();
204205
if (_frame != null)
205206
{
@@ -328,8 +329,6 @@ private void UpdateView(bool animate)
328329
/// </summary>
329330
private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
330331
{
331-
const int backButtonVisible = 1;
332-
333332
if (DesignMode.DesignModeEnabled)
334333
{
335334
return;
@@ -358,7 +357,7 @@ private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
358357
}
359358
else
360359
{
361-
SetNavigationViewBackButtonState(backButtonVisible, true);
360+
SetNavigationViewBackButtonState(NavigationView.NavigationViewBackButtonVisible.Visible, true);
362361
}
363362
}
364363
else if (BackButtonBehavior != BackButtonBehavior.Manual)
@@ -441,15 +440,15 @@ private void SetVisualState(bool animate)
441440
VisualStateManager.GoToState(this, SelectedItem == null ? noSelectionState : hasSelectionState, animate);
442441
}
443442

444-
private void SetNavigationViewBackButtonState(int visible, bool enabled)
443+
private void SetNavigationViewBackButtonState(NavigationView.NavigationViewBackButtonVisible visibility, bool enabled)
445444
{
446445
if (_navigationView == null)
447446
{
448447
return;
449448
}
450449

451-
_previousNavigationViewBackVisibilty = (int)_navigationView.IsBackButtonVisible;
452-
_navigationView.IsBackButtonVisible = (Microsoft.UI.Xaml.Controls.NavigationViewBackButtonVisible)visible;
450+
_previousNavigationViewBackVisibilty = _navigationView.IsBackButtonVisible;
451+
_navigationView.IsBackButtonVisible = visibility;
453452

454453
_previousNavigationViewBackEnabled = _navigationView.IsBackEnabled;
455454
_navigationView.IsBackEnabled = enabled;

0 commit comments

Comments
 (0)