我有一个带有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答案 0 :(得分:0)
通常,您只需将商品添加到 ListBox.SelectedItems 集合中:
private void SelectButton_Click(object sender, RoutedEventArgs e)
{
// either by adding item from collection:
myListBox.SelectedItems.Add(CollectionOfItems[1]);
// or add from list itself:
myListBox.SelectedItems.Add(myListBox.Items.Last());
}
答案 1 :(得分:0)
我认为您可以覆盖onNavigatedTo()
方法并将项目的颜色更改为默认值。在(Frame).Navigate()
传递为另一帧的参数中,列表的.SelectedItem
进行比较。
抱歉我的英文。
答案 2 :(得分:0)
如果我们将集合设置为ItemSource
的{{1}},我们应该可以使用设置为ListBox
。当我的收藏集为ListBox.SelectedItem
时,我们应该能够使用ObservableCollection<Menu> Menus
设置的Menu
对象。
例如:
ListBox.SelectedItem
如果我们通过以下代码设置SideBarListBox.SelectedItem = Menus[1];
,我们应该能够将ListBoxItem
设置为ListBoxItem
。
ListBox.SelectedItem
顺便说一句,我们应该可以使用<ListBox Name="MyListBox">
<ListBox.Items>
<ListBoxItem Name="FristItem">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text=""></TextBlock>
</StackPanel>
</ListBoxItem>
<ListBoxItem Name="SecondItem">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text=""></TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox.Items>
</ListBox>
来设置所选项目。
当我们设置要突出显示SelectedItem时,如果要更改其他颜色,我们应该能够使用ListBox.ContainerFromItem
获取ListBox.SelectedIndex
。然后我们可以设置ListBoxItem
和Background
。