我有一个带有ListBox的汉堡包菜单,当我点击它突出显示的项目并导航到相关页面时,但是当我点击xaml页面内的任何链接时,即使页面被导航,汉堡包项目也不会改变 . 如何设置列表框项目从后面的代码中选择和突出显示 . 提前致谢
我从任何需要将Listbox项目更改为我需要的项目的地方调用以下函数
public async static void ChangeSideBarItem()
{
ADHome objADHome = new ADHome();
string selected = App.SelectedPage;
int x = objADHome.SideBarListBox.Items.IndexOf(selected);
if (!String.IsNullOrEmpty(selected))
{
for (int index = 0; index < objADHome.SideBarListBox.Items.Count; index++)
{
HamburgerItemClass item = (HamburgerItemClass)objADHome.SideBarListBox.Items[index];
string item1 = item.Title;
if (selected == item1)
{
objADHome.SideBarListBox.SelectedItem = index;
break;
}
}
}
}
我通过从不同的xaml页面(订单页面)设置App.SelectedPage来调用上面的方法我在这里有一个链接仪表板导航回仪表板页面,当我点击列表框(侧栏)中的特定仪表板项目时应该突出显示
private void DashboardLink_Click(object sender, RoutedEventArgs e)
{
App.SelectedPage = "Dashboard";
ADHome.ChangeSideBarItem();
this.Frame.Navigate(typeof(DashBoard));
}
但是当我调试时,它没有被选中,在selecteditem中显示为null
3 回答
通常,您只需将项目添加到ListBox.SelectedItems集合:
我认为您可以覆盖
onNavigatedTo()
方法并将项目的颜色更改为默认值 . 在(Frame).Navigate()
传递作为参数的另一帧.SelectedItem
列表进行比较 . 对不起我的英语不好 .如果我们将Collection设置为
ListBox
的ItemSource
,我们应该可以使用设置为ListBox.SelectedItem
. 当我的Collection是ObservableCollection<Menu> Menus
时,我们应该能够使用Menu
对象设置为ListBox.SelectedItem
.例如:
如果我们通过以下代码设置
ListBoxItem
,我们应该能够将ListBoxItem
设置为ListBox.SelectedItem
.顺便说一句,我们应该能够使用
ListBox.SelectedIndex
来设置所选项目 .当我们设置SelectedItem将被突出显示时,如果你想更改其他颜色,我们应该能够使用ListBox.ContainerFromItem获取
ListBoxItem
. 然后我们可以设置Background
和Foreground
.