将值绑定为 ConverterParameter

Sas*_*sha 0 wpf xaml binding

在我的资源字典中,我有以下样式:

 <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>
Run Code Online (Sandbox Code Playgroud)

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

我该如何解决这个问题?

提前谢谢

Jon*_*Jon 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>
Run Code Online (Sandbox Code Playgroud)

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