我想在VS2012中创建一个类似于Settings
框的Options
窗口。我希望为每组设置编写一个XAML页面。但是如何使用TreeView
选择显示哪个XAML页面? XAML页面是否应该是树中加载的对象的一部分?
(我应该说,我如何以MVVM的方式做到这一点......如果可能的话。)
答案 0 :(得分:0)
我会按照以下方式进行:
拥有一个视图模型类,称之为SettingsPageVM
,其中包含Title
和PageUrl
到您的网页。
创建了SettingsPageVM
的列表后,将其绑定到TreeView
,其中的列表名为Items
,其中包含HierarchicalDataTemplate
,例如:
<HierarchicalDataTemplate DataType="{x:Type vm:SettingsPageVM}" ItemsSource="{Binding Items, Mode=OneWay}">
<StackPanel>
<Button Content="{Binding Title}" Command="Open"/>
</StackPanel>
</HierarchicalDataTemplate>
然后,绑定open命令以处理导航到您的页面:
<UserControl.CommandBindings>
<CommandBinding Command="Open" CanExecute="OpenCanExecute" Executed="OpenExecuted"></CommandBinding>
</UserControl.CommandBindings>
你遇到的问题是否比这更深?