私はListBoxを持つハンバーガーメニューを持っています。項目をクリックすると強調表示され、関連ページに移動しましたが、xamlページ内の任意のリンクをクリックするとハンバーガー項目は変更されません。ナビゲート。どのようにリストボックスの項目を選択し、コードの背後から強調表示を設定する。おかげで事前リストボックス項目の選択programatically
に私は私が(別のXAMLページからApp.SelectedPageを設定することにより、上記のメソッドを呼び出しています、私の必要な1
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;
}
}
}
}
にリストボックスの項目を変更する必要がどこから次の関数を呼び出していますオーダーページ)は、ここで私は、リストボックス内の特定のダッシュボードアイテム(サイドバー)が
private void DashboardLink_Click(object sender, RoutedEventArgs e)
{
App.SelectedPage = "Dashboard";
ADHome.ChangeSideBarItem();
this.Frame.Navigate(typeof(DashBoard));
}
を強調したが、私はそれをデバッグするときには、選択されていないする必要があることをクリックすると、リンクのダッシュボードは、ダッシュボードのページに戻って移動しなければなりません選択されている私はあなたがonNavigatedTo()
メソッドをオーバーライドし、デフォルトにアイテムの色を変更することができると思います
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());
}
申し訳ありませんが、私は答えを理解していません – Murali
@ムラリあなたは 'どのようにリストボックスの項目を選択し、コードの背後から強調表示するように頼んだ - これはその質問への答えです、あなたは* * ItemsSource *を 'CollectionOfItems'として設定したmyListBox'を呼び出します。私はちょうどダミーのボタンクリックのイベントとしてこれを提示しました。 – Romasz
私のcollectionOfItemsはlistboxにバインドされていますが、ハンバーガーメニュー項目(つまりリストボックス項目)の項目をクリックせずに、選択した項目を変更するだけです。例:メニューにダッシュボードとオーダーアイテムがあります。ダッシュボードをクリックするとDashboard.xamlがフレームに移動し、アイテムがハンバーガーメニューの(デフォルトではリストボックスのスタイルで)ハイライト表示されますが、 Goto OrdersPageのようなDashboard.xamlページ。これをクリックすると、OrdersPage.xamlがフレームにナビゲートされますが、ハンバーガーメニューはダッシュボード項目を強調表示します。 – Murali