使用TreeView导航到不同的页面

时间:2012-11-01 23:10:02

标签: wpf binding treeview

我想在VS2012中创建一个类似于Settings框的Options窗口。我希望为每组设置编写一个XAML页面。但是如何使用TreeView选择显示哪个XAML页面? XAML页面是否应该是树中加载的对象的一部分?

(我应该说,我如何以MVVM的方式做到这一点......如果可能的话。)

1 个答案:

答案 0 :(得分:0)

我会按照以下方式进行:

拥有一个视图模型类,称之为SettingsPageVM,其中包含TitlePageUrl到您的网页。

创建了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>

你遇到的问题是否比这更深?