0

コンテンツに空の ListBox を含む TreeViewItem を、コンテンツのない TreeViewItem のように見せたいと思います。たとえば、TreeViewItem「A」は私が望むように見えます。そして、TreeViewItem "B" の ListBox が空の場合、"B" は "A" のように見えます。

    <TreeView>
        <TreeViewItem x:Name="A" Header="Header" />
        <TreeViewItem x:Name="B" Header="Header with empty list">
            <ListBox x:Name="localContent" ItemsSource="{Binding listContent}">
                <!--ListBox.Style>
                    <Style TargetType="ListBox">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding listContent.Count}" Value="0">
                                <Setter Property="{Binding ElementName=localItem, Path=Background}">
                                    <Setter.Value>
                                        <Color R="0" G="0" B="0" /> 
                                    </Setter.Value>
                                </Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ListBox.Style-->
            </ListBox>
        </TreeViewItem>
    </TreeView>
4

3 に答える 3

0

あなたはすでにcountで似たようなことをしているようです。

         <TreeViewItem x:Name="B" Header="Header with empty list">
            <ListBox x:Name="localContent" ItemsSource="{Binding listContent}">
                <ListBox.Style>
                    <Style TargetType="ListBox">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding listContent.Count}" Value="0">
                                <Setter Property="Visiblity" Value="Hidden" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ListBox.Style>
            </ListBox>
        </TreeViewItem>
于 2012-09-06T20:28:33.407 に答える
0

VisibilityListBox の をに設定して、リストボックスにCollapsed表示されないようにすることができますTreeView

于 2012-09-06T20:25:43.367 に答える
0

次のトリガーで目的の動作を実現しました(任意のコントロールに追加します):

<Style.Triggers>
            <DataTrigger Binding="{Binding Count, Converter={StaticResource int2bool}}" Value="False">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Expander Visibility="Hidden" />
                                <TextBlock Text="list is empty" />
                            </StackPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding Count, Converter={StaticResource int2bool}}" Value="True"  >
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Expander Header="{Binding}">
                                <Expander.Content>
                                    <ListBox ItemsSource="{Binding}" />
                                </Expander.Content>
                            </Expander>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
        </Style.Triggers>
于 2012-09-06T23:38:35.723 に答える