我有一个C#WPF项目。我ObservableCollection<T>
在viewmodel
课堂上使用。
我有一个ListView
在xaml
文件中。还有TextBlock
里面的ListView
结合ObservableCollection<T>
。
我想把它们折叠起来DataTrigger
。结果是那些TextBlock
折叠了但仍在使用空间。我想问一下如何解决?
这是ListView
我正在使用的:
<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>
和
<ListView Grid.Row="1"
ItemsSource="{Binding ServiceObjects}"
ItemContainerStyle="{StaticResource LstBoxItemStyle}">
谢谢,我是csharp的新手,我想问一下<Style>应该放在哪里?是在DataTemplate下吗?
您可以根据使用的内容将其添加到UserControl.Resources或Window.Resources
即:`<UserControl> <UserControl.Resouces> <Style TargetType =“ ListBoxItem” x:Key =“ LstBoxItemStyle”> ... </ Style> </UserControl.Resources> ... </ UserControl>`
谢谢,我添加了有效的<Window.Resources>。