我是WPF和MVVM的新手。我正在與一個LoB應用程序團隊合作。我們希望有一個動態的Menu
控件,該控件根據登錄的用戶配置文件創建菜單。在以前的開發場景(即ASP.NET)中,我們使用它來遍歷描述集合的數據並動態生成MenuItem
。在MVVM中,我會如何做到這一點?我可以從描述菜單元素的ViewModel中分離出XAML視圖嗎?MVVM動態菜單用戶界面與ViewModel綁定
解決方案:
隨着從評論員我們能夠與從視圖模型的數據動態地綁定Menu
輸入。這article也很有幫助。
XAML:
<HierarchicalDataTemplate DataType="{x:Type self:Menu}" ItemsSource="{Binding Path=Children, UpdateSourceTrigger=PropertyChanged}">
<ContentPresenter Content="{Binding Path=MenuText}" RecognizesAccessKey="True"/>
</HierarchicalDataTemplate>
[...]
<Menu Height="21" Margin="0" Name="mainMenu" VerticalAlignment="Top" HorizontalAlignment="Stretch"
ItemsSource="{Binding Path=MenuItems, UpdateSourceTrigger=PropertyChanged}" ItemContainerStyle="{StaticResource TopMenuItems}">
<Menu.Background>
<ImageBrush ImageSource="/Wpf.Modules;component/Images/MenuBg.jpg" />
</Menu.Background>
</Menu>
Menu
數據類:
在Google上花費了一些時間之後,我發現HierarchicalDataTemplate可以在動態菜單創建中有所幫助,但是可以將「關注」與MVVM模式分開。我還沒有任何代碼示例:( – Raj 2009-09-08 07:01:00