2009-07-07 4 views
1

Ich habe eine Combo-Box, die auf Auswahl von zwei anderen Combos 'bevölkert ist. Kein Problem Ich habe das funktioniert. Problem ist, ich möchte nur die ausgewählte Elementbindung aktivieren, nachdem dies passiert ist.WPF ComboBox Wie binden Sie das ausgewählte Element in Code?

Hier ist meine Combo

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

Wie kann ich die SelectedValue Bindung aufhören zu arbeiten bis ich die Combo bevölkert haben?

Antwort

1

Ich weiß nicht, ob dies in reiner XAML möglich ist, aber wenn Sie ein zugrunde liegendes Ansichtsmodell haben, wäre dies nicht zu hart sein:

Was würden Sie tun müssen, ist Ihre dritte ComboBox zu binden eine Eigenschaft im ViewModel (nennen wir diese Eigenschaft Combo3Items).

Sie müssten auch die beiden ersten ComboBoxen an Eigenschaften im selben ViewModel binden (nennen wir diese Combo1Items bzw. Combo2Items). Darüber hinaus können Sie den SelectedValue beider ComboBoxen an Eigenschaften im ViewModel binden, sodass das ViewModel weiß, welche Elemente ausgewählt sind.

Anfangs wären Combo3Items leer, aber sobald die beiden gebundenen SelectedValues ​​ordnungsgemäß zugewiesen wurden, können Sie Combo3Items füllen und ein INotifyPropertyChanged-Ereignis auslösen.

Die MVVM-Architektur ist sehr leistungsfähig. Wenn Sie es noch nicht wissen, können Sie mehr darüber lesen here.