2

アイテムがない場合にコンボボックスのドロップダウンボタンを無効にするトリガーを作成しようとしています。これは私がこれまでに試した XAML コードですが、ComboBox にアイテムが含まれていないかどうかを検出する方法と、特にリストをドロップダウンするボタンを無効にする方法がわかりません。

<Style TargetType="ComboBox">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ComboBox}">
                        <ControlTemplate.Triggers>
                            <Trigger Property="Items.Count" Value="0">

                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
4

1 に答える 1

1

これは私のために働いた:

<ComboBox IsEnabled="{Binding RelativeSource=
   {RelativeSource Mode=Self}, Path=ItemsSource.Count}"/>

ItemsSourceプロパティにバインドしたものにcountメソッドがあると仮定します(これはObservableCollectionで機能しました)。実際には、カウントが0であることがxamlでfalseに解決されるのは興味深いことですが、C#ではそうではありません。

プログラムでコントロールに追加する必要がある場合は、スタイルに追加できます

<Style TargetType="ComboBox" x:Key="ComboStyle">
    <Setter Property="IsEnabled" Value="{Binding RelativeSource=
       {RelativeSource Mode=Self}, Path=ItemsSource.Count}"/>
</Style>

ComboBox cbo = new ComboBox();
cbo.ItemsSource = MyData;
cbo.Style = Resources["ComboStyle"] as Style;
于 2013-03-19T22:08:32.037 に答える