0

comboxitemのスタイルを作成しようとしています。現在のコンボボックスアイテムをコンバーターに渡したい。スタイルは

 <Style x:Key="MyVisibilityStyle" TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Visibility">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource VisibiltyMultiValueConverter}">
                    <Binding Path="."/>
                    <Binding Path="SelectedItem"
                             ElementName="ABCComboBox"/>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style>

問題は「。」です。コンボボックスアイテムではなく、メインウィンドウのオブジェクトを渡します。

4

2 に答える 2

2

ComboBoxItem<Binding Path=".">が保持するオブジェクトを<Binding RelativeSource="{RelativeSource Self}"/>渡すことで、コントロール自体を渡すことができます。

また、ComboBox全体とその選択されたインデックス/アイテムを渡すこともできます。

コンバーターでは、次のようにComboBoxItemを取得できます。

ComboBoxItem cbi = (ComboBoxItem)(cb.ItemContainerGenerator.ContainerFromIndex(selectedindex));

また

ComboBoxItem cbi = (ComboBoxItem)(cb.ItemContainerGenerator.ContainerFromItem(selecteditem));
于 2012-11-26T09:07:11.063 に答える
1

FindAncestorを使用して、コンボボックスの選択したアイテムを取得できます。

<Binding Path="SelectedItem" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ComboBox}"/>

于 2012-11-26T09:30:13.273 に答える