0

別のユーザーコントロールに含めているユーザーコントロール (カスタマイズされたコンボボックス) があります。ComboBox Usercontrol を含むメインの usercontrol のデータに基づいて、Customized ComboBox UserControl にスタイルを設定したいと考えています。

これが私のコードです

<MultiSelectComboBox:MultiUnitSelectControl x:Name="MultiUnitCombo" Grid.Row="0" Width="90" Grid.Column="0" ItemsSource="{Binding LstUnit}" Margin="0,10,0,2" FontWeight="Bold" HorizontalAlignment="Left">
    <MultiSelectComboBox:MultiUnitSelectControl.Style>
        <Style TargetType="{x:Type ComboBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Items.Count,ElementName=UnitCombo}" Value="1">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </MultiSelectComboBox:MultiUnitSelectControl.Style>
</MultiSelectComboBox:MultiUnitSelectControl>

これは私のカスタマイズしたユーザー コントロールです。今私が欲しいのは、Items Count が 1 に等しいときに Collapse したいということです。UnitCombo は、ItemsCount に基づくメインの UserControl のコンボボックスです。

ただし、このスタイルをメイン UserControl の ComboBox に適用すると機能します

<ComboBox.Style>
                                        <Style TargetType="{x:Type ComboBox}">
                                            <Style.Triggers>
                                                <DataTrigger
                                                        Binding="{Binding Path=Items.Count, ElementName=UnitCombo}"
                                                        Value="1">
                                                    <Setter Property="SelectedIndex" Value="0" />

                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </ComboBox.Style>

しかし、含まれている UserControl に同じスタイルを適用しても、何も表示されません。ビュー全体がハングし、コントロールが非表示か何かのように何も表示されません。

これどうやってするの?

4

1 に答える 1

0

UnitComboに設定するItemsSourceことであなたが満たされていることを願っています。その後、代わりに ObservableCollectionバインドする必要があります。ItemsSource.CountItems.Count

          <DataTrigger Binding="{Binding Path=ItemsSource.Count,ElementName=UnitCombo}" Value="1">
                <Setter Property="Visibility" Value="Collapsed"/>
            </DataTrigger>

それが動作します。

于 2013-10-18T06:35:26.477 に答える