2011-07-15 12 views

答えて

0

はい。動的に有効または無効にする対象のコントロールでIsEnabledにバインドし、一致する文字列またはアイテムをComboBoxから有効にするためにtrue値に変換するには、Value Converterを使用します。

1

MVVMを使用している場合は、コンボボックスのSelectedItemをviewmodelのプロパティにバインドできます。

<ComboBox ItemsSource="{Binding widgetlist}" SelectedItem="{Binding Path=selectedwidget, Mode=TwoWay}"></ComboBox> 

そして、これがあなたのコントロールです:

<DockPanel IsEnabled="{Binding controlenabled}"> 
    ... 
</DockPanel> 

はその後selectedwidgetのセッターでは、あなたが虚偽またはTrueにcontrolenabledプロパティを変更することができます

が、これはあなたのコンボボックスであると言います。 (またはしたい場合は、controlenabledたDependencyPropertyを作る):

  • widgetlistcontrolenabledプロパティが変化したことを通知することを忘れないでください

    要約すると、あなたはに結合する3つのプロパティを持っていますObservableCollectionまたはあなたのコンボボックス

  • selectedwidget、現在選択されているものは何でもコンボボックスに変わり、そのコレクション型の項目のための源であるいくつかの他のコレクション

  • controlenabledbool他のコントロールは、有効/無効を判断するために使用されます。

MVVMの多くの例と同様に、この方法では、最初に少しだけ思考やコードが必要になることがありますが、後ではるかに維持しやすくスケーラビリティに優れています。たとえば、同じシナリオに基づいて、さらにいくつかのコントロールを有効/無効にしたいとします。ケーキの一部:IsEnabled="{Binding controlenabled}">を追加します。

関連する問題