0

在我的 resourceDictionary 中,我有以下风格:

 <Style TargetType="{x:Type propgrid:PropertyGridDataAccessorItem}" x:Key="{x:Type propgrid:PropertyGridDataAccessorItem}">
            <Style.Triggers>
                <Trigger Property="DataAccessorType" Value="Category">
                    <Setter Property="IsExpanded" Value="{Binding DisplayName, Converter={local:ExpandedCategoryConverter}}"/>
                </Trigger>
            </Style.Triggers>
  </Style>

我需要将 viewModel 中的值绑定到 ConverterParameter,例如 ConverterParameter = {Binding MyProperty},但我们无法绑定到 ConverterParameter。

我该如何解决这个问题?

提前谢谢

4

1 回答 1

5

正如您所发现的,您无法绑定ConverterParameter,因为它不是依赖属性。

大多数情况下,解决方案是简单地使用一个MultiBinding和一个多值转换器,例如:

<Trigger Property="DataAccessorType" Value="Category">
  <Setter Property="IsExpanded">
    <Setter.Value>
      <MultiBinding Converter="{local:ExpandedCategoryConverter}">
        <Binding Path="DisplayName"/>
        <Binding Path="WhatYouWantToPassInAsConverterParameter"/>
      </MultiBinding>
    </Setter.Value>
  </Setter>
</Trigger>

转换器当然需要适当更新。

于 2013-06-03T08:47:20.040 回答