我想做一个Settings
类似于Options
VS2012中的框的窗口。我希望为每组设置编写一个 XAML 页面。但是如何使用 aTreeView
来选择显示哪个 XAML 页面?XAML 页面是否应该是树中加载的对象的一部分?
(我应该说,我该如何以 MVVM 方式做到这一点......如果可能的话。)
我会按照以下方式进行:
有一个视图模型类,将其命名为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>
然后,绑定打开命令以处理导航到您的页面:
<UserControl.CommandBindings>
<CommandBinding Command="Open" CanExecute="OpenCanExecute" Executed="OpenExecuted"></CommandBinding>
</UserControl.CommandBindings>
你遇到的问题比这更深吗?