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>

しかし、私のプロパティは常にnullです。

誰でもこの問題に対処する方法を知っていますか?

事前にt​​hnx

4

1 に答える 1

0

バインディングが値を生成しないため、DependencyProperty.UnsetValuefor MyProperty(or ) を取得します。IMul​​tiValueConverter.ConvertメソッドのパラメーターExpandCategoryの MSDN ドキュメントには、次のように記載されています。values

MultiBinding のソース バインディングが生成する値の配列。値UnsetValueは、変換のために提供する値がソース バインディングにないことを示します。

それが機能することを確認する必要があり<Binding Path="MyProperty"/>ます。バインディングのソースを正しく設定していないと思います。

于 2013-06-06T09:38:52.080 に答える