0
<Window.Resources>
    <ResourceDictionary>            
        <Style TargetType="{x:Type propgrid:PropertyGridDataAccessorItem}">
            <Style.Triggers>
               <Trigger Property="DataAccessorType" Value="Category">
                   <Setter Property="IsExpanded" Value="{Binding DisplayName, RelativeSource={x:Static RelativeSource.Self}, ConverterParameter=???, Converter={local:ExpandedCategoryConverter}}"/>
               </Trigger>
            </Style.Triggers>
        </Style>
    </ResourceDictionary>
</Window.Resources>

问题是我不知道如何将我的 ViewModel 中的属性作为 ConverterParameter 发送。我想要像 ConverterParameter="{Binding MyValue}" 这样的东西,但这是不可能的。我尝试了这样的多重绑定:

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

但我的财产总是空的。

有人知道如何处理这个问题吗?

提前谢谢

4

1 回答 1

0

你得到DependencyProperty.UnsetValuefor MyProperty(or ExpandCategory) 因为绑定不产生值。IMul​​tiValueConverter.Convertvalues方法的参数的MSDN 文档说:

价值观

MultiBinding 中的源绑定生成的值数组。UnsetValue值表示源绑定没有为转换提供的值。

你必须确保它<Binding Path="MyProperty"/>有效。我猜你没有正确设置绑定的来源。

于 2013-06-06T09:38:52.080 回答