Wpf 如何在不破坏主题的情况下真正隐藏ListViewItem?
我的问题似乎也是其他人的问题,因为我发现了一些其他类似的问题(例如)。在这个特定的问题/答案中,我比我发现的任何其他问题/答案加起来都要深入。我面临的问题是,当我实现答案中的Wpf 如何在不破坏主题的情况下真正隐藏ListViewItem?,wpf,xaml,listviewitem,Wpf,Xaml,Listviewitem,我的问题似乎也是其他人的问题,因为我发现了一些其他类似的问题(例如)。在这个特定的问题/答案中,我比我发现的任何其他问题/答案加起来都要深入。我面临的问题是,当我实现答案中的DataTrigger时(与ListBox相比,ListView稍微修改),我得到了项目的正确折叠,但对于某些事情,我的主题似乎恢复为默认值,而不是使用我的样式 以下是我添加到我的列表视图中的内容,以便真正折叠折叠折叠的项目: <ListView.ItemContainerStyle> <Style
DataTrigger
时(与ListBox
相比,ListView
稍微修改),我得到了项目的正确折叠,但对于某些事情,我的主题似乎恢复为默认值,而不是使用我的样式
以下是我添加到我的列表视图中的内容,以便真正折叠折叠折叠的项目:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Visibility}" Value="Collapsed">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
以下是添加上述内容之前过滤的项目的示例:
(注意不应该在那里的项目的橙色悬停)
以下是添加上述内容后过滤的项目的示例:
(请注意,悬停/选择指示器现在以某种方式变为蓝色,我的文本字段大小不再合适)
任何人能提供的任何帮助都将不胜感激,并感谢您抽出时间阅读本文
旁注:请不要只告诉我使用CollectionView
进行筛选。昨天我花了一天的大部分时间来解决这个问题,因为使用了BindingList
而不是observeCollection
,它根本不适合我的情况。这里的问题是ModernUI
框架覆盖了ListViewItem
的默认样式,但是,您要覆盖以下内容:
<Style TargetType="{x:Type ListViewItem}">
上面的代码只是继承了默认的ListViewItem
样式(已被ModernUI
覆盖)。旁注:为什么要在WPF中使用BindingList?在这个样式上添加BasedOn
属性,这样它就继承了主题的样式。嗯,BasedOn=“{StaticResource{x:Type ListViewItem}”怎么样
。这应该基于ListViewItem
的默认样式。我没有用你的例子尝试过,但值得一试。你可以用@MikeEason,你是我的英雄!请把这个评论作为一个答案,这样我就可以给你一些当之无愧的答案,你这个美丽的男人。
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">