2016-03-07 66 views
3

我想從動態列表中創建一個HamburgerMenu,最好我想將一個像ListBox這樣的東西與一個模板綁定到我的視圖模型上的列表中,並讓菜單項出現動態。 (見:http://bit.ly/1Lac78E)。漢堡包菜單按鈕的動態列表

試圖向除HamburgerButtonInfo之外的PrimaryButtons(或可能是SecondaryButtons)集合添加任何內容都會導致錯誤。大概是因爲這些藏品被聲明爲:

PrimaryButtons = new ObservableItemCollection<HamburgerButtonInfo>(); 
SecondaryButtons = new ObservableItemCollection<HamburgerButtonInfo>(); 

那麼,這可能與Template10漢堡菜單要做到這一點,而不會在這個問題上使用代碼隱藏,如:UWP Template 10 create a dynamic hamburgermenu

UPDATE

爲了澄清,我想創建一個導航菜單(使用漢堡包菜單模板)類似的郵件和日曆應用程序,其中有文件夾中的文件夾和項目的動態列表。

enter image description here

+0

是否使用MVVM? –

+0

@MirkoBellabarba是的,template10是「本地」MVVM。 – CodingGorilla

+0

是的,我知道,但這不是強制性的。你是否嘗試將主按鈕綁定到你的ViewModel中聲明的HamburgerButtonInfo的列表/ ObservableCollection? –

回答

1

首先,我不知道這是擺在首位非常聰明。

但這裏是你如何做到這一點。

public class MainPage:Page 
{ 
    private void MainPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     ViewModel.PrimaryButtons = Views.Shell.HamburgerMenu.PrimaryButtons; 
     ViewModel.SecondaryButtons = Views.Shell.HamburgerMenu.SecondaryButtons; 
    } 
} 

public class MainPageViewModel 
{ 
    Windows.Foundation.Collections.IObservableVector<ICommandBarElement> PrimaryButtons { get; set; } 
    Windows.Foundation.Collections.IObservableVector<ICommandBarElement> SecondaryButtons { get; set; } 
} 

祝你好運, 傑裏

+1

你爲什麼說它不是很聰明? – CodingGorilla

+0

我爲uwp做了一個動態appbar,但我沒有時間現在分享我今晚會嘗試做的代碼 – RicardoPons

+0

所以這會導致編譯器錯誤'不能隱式轉換類型'System.Collections.ObjectModel.ObservableCollection < Template10.Controls.HamburgerButtonInfo>'到'System.Collections.ObjectModel.ObservableCollection '。試圖施放它,只是給了我一個不同的編譯器錯誤,告訴我它不是可施放的。 – CodingGorilla