0

我想将 wpf listview 的列标题可见性绑定到依赖属性,而不会丢失我使用的全局样式(表达式暗)。

我定义了一种风格:

<Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
   <Setter Property="Visibility" Value="{Binding ColumnHeaderVisibility}" />
</Style>

然后我像这样应用它:

<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">

我正在使用表达黑暗主题。它是通过 MergedDictionaries 导入的,并且可以在运行时更改。

当列标题不可见时,一切都很好。但是当它可见时,它会以默认窗口样式显示,因为设置 ColumnHeaderContainerStyle 会覆盖表达式暗样式。

无法在原始样式上使用“BasedOn”,因为由于需要在运行时更改样式,所有资源都是动态的。BasedOn 仅适用于静态资源,不允许在运行时更改。

我还可以做些什么?

4

1 回答 1

1

不确定这是否可行,但您可以尝试将样式基于默认样式。

<Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"  BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
   <Setter Property="Visibility" Value="{Binding ColumnHeaderVisibility}" />
</Style>
于 2012-04-25T15:29:21.997 回答