设置ConverterParameter的风格

时间:2013-06-06 08:59:41

标签: wpf xaml mvvm binding

<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}”这样的东西,但它是不可能的。我像这样尝试Multibinding:

<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>

但我的财产总是空的。

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

Thnx提前

1 个答案:

答案 0 :(得分:0)

DependencyProperty.UnsetValue(或MyProperty)获得ExpandCategory,因为绑定不会产生值。 IMultiValueConverter.Convert方法的values参数的MSDN文档说明:

  

     
    

源绑定在MultiBinding中的值数组     产生。值 UnsetValue 表示源绑定具有     没有提供转换的价值。

  

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