TreeView не имеет события AfterExpand? - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь получить древовидное представление, которое просматривает потенциально циклические иерархические данные.Это означает, что я не могу попытаться загрузить все дерево одновременно, поскольку тогда могут быть бесконечные циклы.

Я хотел бы отреагировать на событие TreeView.AfterCollapse, задокументированное здесь, в MSDN

однако, мой контроль, кажется, не имеет этого события.Если я пытаюсь добавить атрибут AfterExpand, я получаю это сообщение об ошибке:

 error MC3072: The property 'AfterExpand' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. Line 23 Position 21.

Что я делаю не так?Вы называете неправильное пространство имен?Вот код:

<Window x:Class="MyApp.Edit.EditView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyApp.Edit"
    Title="{Binding WindowTitle,UpdateSourceTrigger=PropertyChanged}" MinHeight="350" MinWidth="350">

    <Window.Resources>
        <HierarchicalDataTemplate x:Key="sectionTemplate"
        ItemsSource="{Binding ChildSections}"
        DataType="{x:Type local:Section}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Label, UpdateSourceTrigger=PropertyChanged}" />
                <TextBlock Text=" - " />
                <TextBlock Text="{Binding Description}" FontStyle="Italic" Foreground="#777" />
            </StackPanel>
        </HierarchicalDataTemplate>
    </Window.Resources>

    <StackPanel>

    <TreeView ItemsSource="{Binding Sections}"
                SelectedItemChanged="TreeView_SelectedItemChanged"
                ItemTemplate="{StaticResource sectionTemplate}"
                MinHeight="150"
                MinWidth="300"
                Name="treeView"
                AfterExpand="MyEventHandler"
        </TreeView>

        <TextBox Text="{Binding Label, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                 Margin="0 10 0 0"/>

        <TextBox Text="{Binding Description, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                 Margin="0 10 0 0"/>

        <StackPanel Orientation="Horizontal">
            <Button Content="Add Child" Click="Button_Click_AddChild" />
        </StackPanel>
    </StackPanel>
</Window>

1 Ответ

3 голосов
/ 05 декабря 2011

Это событие представления дерева Windows Forms, оно не принадлежит WPF TreeView, в WPF вы можете использовать Collapsed и Expanded из TreeViewItems, а не TreeView.

Однако вы можете подписаться на события на TreeView, так как они маршрутизируются .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...