C# Textblock使用空格折叠

C# Textblock使用空格折叠,c#,wpf,C#,Wpf,我有一个C#WPF项目。我在我的viewmodel类中使用了ObservableCollection 我在xaml文件中有一个ListView。列表视图中有TextBlock绑定到可观察集合 我想通过DataTrigger折叠它们。结果是那些TextBlock已折叠,但仍使用空格。我想问一下如何修理它 以下是我正在使用的列表视图: <ListView Grid.Row="1" ItemsSource="{Binding ServiceObjects}&quo

我有一个C#WPF项目。我在我的
viewmodel
类中使用了
ObservableCollection

我在
xaml
文件中有一个
ListView
列表视图中有
TextBlock
绑定到
可观察集合

我想通过
DataTrigger
折叠它们。结果是那些
TextBlock
已折叠,但仍使用空格。我想问一下如何修理它

以下是我正在使用的
列表视图

<ListView Grid.Row="1"  ItemsSource="{Binding ServiceObjects}">
    <ListView.ItemTemplate>
        <DataTemplate>
                <TextBlock Text="{Binding ServiceName}">
                    <TextBlock.Style>
                        <Style TargetType="TextBlock">
                            <Setter Property="Visibility" Value="Collapsed" />
                            <Setter Property="Foreground" Value="Black" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsCollapsed}" Value="true">
                                    <Setter Property="Foreground" Value="#FFBF00" />
                                    <Setter Property="Visibility" Value="Visible" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </TextBlock.Style>
                </TextBlock>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

试试这个:

<Style TargetType="ListBoxItem" x:Key="LstBoxItemStyle">
   <Setter Property="MinHeight"
           Value="0" />
   <Setter Property="IsEnabled"
           Value="False" />
   <Style.Triggers>
          <DataTrigger Binding="{Binding IsCollapsed}" Value="True">
               <Setter Property="IsEnabled"
                       Value="True" />
          </DataTrigger>
   </Style.Triggers>
</Style>



或者使用过滤器

您是否尝试过使用“隐藏”而不是“折叠”?是的,我尝试过,这不好。我现在发现这是由网格造成的,但是当网格内的元素被折叠时,我如何折叠网格?你不能将你的样式从textbox移动到网格吗?不确定如何将数据绑定到网格,似乎需要使用网格视图?也许我应该移除网格?我移除了网格,但仍然面临同样的问题。谢谢,我是csharp的新手,我想问我应该把它放在哪里?它在DataTemplate下吗?您可以将它添加到UserControl.Resources或Window.Resources,具体取决于您使用的是什么I.e:``谢谢你,我补充说这很有效。
  <ListView Grid.Row="1"
            ItemsSource="{Binding ServiceObjects}"
            ItemContainerStyle="{StaticResource LstBoxItemStyle}">