我是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