我创建一些NavigationViewItem
并设置它的x:Name
和Tag
,如下所示:
<NavigationView x:Name="nvSample"
SelectionChanged="nvSample_SelectionChanged"
IsBackButtonVisible="Collapsed"
IsSettingsVisible="False">
<NavigationView.MenuItems>
<NavigationViewItem x:Name="NavigationViewItem_HomePage" Icon="Home" Content="Home" Tag="HomePage" IsSelected="True" />
<NavigationViewItem x:Name="NavigationViewItem_SimpleSortPage" Icon="Sort" Content="Sort" Tag="SimpleSortPage" />
<...........>
</NavigationView.MenuItems>
</NavigationView>
我想通过x:Name
或Tag
找到NavigationViewItem
对象,以便通过代码更改Content
和IsSelected
属性。
我发现Type.GetType
可能会收到x:Name
的页面,如:
Type pageSelected = Type.GetType("NumberSort.Pages.SimpleSort");
RootPageFrame.Navigate(pageSelected,this);
所以我尝试使用它来获取NavigationViewItem
对象,如下所示:
var NavigationItem = (NavigationViewItem)Type.GetType("NavigationViewItem_HomePage");
然而,它不起作用。
2条答案
按热度按时间dz6r00yl1#
您可以创建如下扩展方法:
NavigationViewExtensions.cs
然后像这样使用它:
0aydgbwb2#
我找到了一个简单的方法:
在这个例子中,它将
NavigationViewItem
的IsSelected
属性设置为true
,其中pageName
等于NavigationViewItem
的Tag
属性。