使用转换器增加选定的ListViewItem高度

时间:2012-07-10 18:51:08

标签: c# wpf xaml listview

我正在尝试以下内容在列表视图中将所选listviewitem的大小增加25%:

<Style x:Key="ListView.AlternatingColors_HeightIncreaseIfSelected" 
    TargetType="ListViewItem">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Height">
                <Setter.Value>
                    <Binding Path="ActualHeight" 
                        ConverterParameter="@VALUE*1.25" 
                        RelativeSource="{RelativeSource Self}">
                        <Binding.Converter>
                            <Converters:MathConverter />
                        </Binding.Converter>
                    </Binding>
                </Setter.Value>
            </Setter>
        </Trigger>
        ...

但是,即使触发器为IsSelected,我也会得到一个无限循环。我尝试使用Path="Height",但将NaN作为转换器中的值。

以上内容来自ListView ItemContainerStyle上设置的样式,以防我的RelativeSource可能不正确,但我确实尝试了几种变体。

知道我怎么能做到这一点吗?

1 个答案:

答案 0 :(得分:1)

创建无限循环,因为绑定目标会修改绑定源。因此,将反复计算绑定值。 由于您只想增加一次高度,只需设置

即可
Mode=OneTime

关于绑定。当源更改时,这将停止刷新绑定。