1

他の2つのコンボからの選択で入力されるコンボボックスがあります。問題ありません。問題は、これが発生した後にのみ、選択されたアイテムのバインディングをアクティブにしたいことです。

これが私のコンボです

 <cuc:ComboBox Name="GopLenTypeCombo" Width="240" Height="24"
                      IsSynchronizedWithCurrentItem="True"
                      SelectedValue="{Binding Mode=TwoWay, Source={StaticResource ProfileDataProvider}, XPath=GopLenType}" 
                      IsEnabled="False"/>

コンボにデータを入力するまで、SelectedValueバインディングの動作を停止するにはどうすればよいですか?

4

1 に答える 1

1

これが純粋な XAML で可能かどうかはわかりませんが、基になる ViewModel がある場合、これはそれほど難しくありません。

必要なことは、3 つ目の ComboBox を ViewModel のプロパティにバインドすることです (このプロパティを Combo3Items と呼びましょう)。

また、最初の 2 つの ComboBoxes を同じ ViewModel のプロパティにバインドする必要があります (これらをそれぞれ Combo1Items および Combo2Items と呼びましょう)。それに加えて、これらの ComboBoxes の SelectedValue の両方を ViewModel のプロパティにバインドして、ViewModel がどの項目が選択されているかを認識できるようにすることができます。

最初は、Combo3Items は空ですが、バインドされた 2 つの SelectedValues が適切に割り当てられるとすぐに、Combo3Items に入力して INotifyPropertyChanged イベントを発生させることができます。

MVVM アーキテクチャは非常に強力です。まだご存じない場合は、こちらで詳細を読むことができます。

于 2009-07-07T11:00:21.257 に答える