使用 Galasoft MVVM 无法显示 TreeView 项目

我在使用 WPF 和 Galasoft MVVM 工具包获得一个简单的 TreeView 来显示项目时遇到了一些困难。我一定错过了一些简单的东西,但我就是找不到。


目前我想要的只是创建一组几个节点并显示它们。我什至还没有编写任何 RelayCommands 或任何其他实质性内容,因此无需担心。另外,我认识到我可能需要在某处包含一个 HierarchicalDataTemplate - 大概是替换“TreeView.ItemTemplate”部分。


谁能指出我看不到的明显错误?任何帮助将不胜感激!


编辑:我已经更新了代码来修复我愚蠢的缺乏子节点列表的问题,但仍然没有显示任何内容。


主窗口.xaml:


<Window x:Class="Analyzer.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:ignore="http://www.galasoft.ch/ignore"

        mc:Ignorable="d ignore"

        Height="495.333"

        Width="700"

        Title="Analyzer"

        DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">


    <Window.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Skins/MainSkin.xaml" />

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>

    </Window.Resources>


    <Grid x:Name="LayoutRoot" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">


        <TextBlock FontSize="36"

                   FontWeight="Bold"

                   Foreground="Purple"

                   VerticalAlignment="Center"

                   HorizontalAlignment="Center"

                   TextWrapping="Wrap" />

        <TreeView ItemsSource="{Binding AllItems}" x:Name="MainTreeView" HorizontalAlignment="Left" Height="408" Margin="10,10,0,0" VerticalAlignment="Top" Width="662">

            <TreeView.ItemTemplate>

                <HierarchicalDataTemplate ItemsSource="{Binding Children}">

                    <StackPanel Orientation="Horizontal">

                        <TextBlock Text="{Binding Path=Name}" />

                    </StackPanel>

                </HierarchicalDataTemplate>

            </TreeView.ItemTemplate>

        </TreeView>



开心每一天1111
浏览 212回答 2
2回答

手掌心

我认为你是对的,这两者之一存在问题;我一定在编辑过程中覆盖或剥离了一些重要的东西。我发现创建一个新项目后,我在理顺事情方面遇到的问题要少得多。我还必须对我的 XAML 代码进行以下更改:<TreeView x:Name="treeView" ItemsSource="{Binding AllItems.Children}" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="188">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <TreeView.ItemTemplate>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <HierarchicalDataTemplate ItemsSource="{Binding Children}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <TextBlock Text="{Binding Name}"/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </HierarchicalDataTemplate>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </TreeView.ItemTemplate>&nbsp; &nbsp; &nbsp; &nbsp; </TreeView>出于某种原因,我无法将其直接绑定到 AllItems - 我必须将顶级绑定到子项。这省略了我的根节点,但其他一切似乎都有效,所以我现在就用这个。谢谢您的帮助!
打开App,查看更多内容
随时随地看视频慕课网APP