2010-11-02 7 views
5

Ich möchte eine Eigenschaft zu dem aktuellen Element einer ICollectionView Wie kann ich es tun? Die ICollectionView wird zum Binden an eine Combobox verwendet. Wie kann ich ein anderes Steuerelement an das ausgewählte Element ICollectionView binden?Wie an CurrentItem von ICollectionView zu binden

Antwort

8

Überprüfen Sie diese cheat sheet. Überprüfen Sie insbesondere das Bindungssymbol /, das auf das aktuelle Element in einer Sammlungsansicht verweist.

+0

Das funktioniert gut, ich habe festgestellt, dass wenn ich das aktuelle Element in der Ansichtsquelle ändern, wird der Wert nicht aktualisiert. Brauche ich eine Abhängigkeitseigenschaft dafür? Oder vielleicht sollte ich dafür @ Rachels Methode benutzen? –

+1

@jiewmeng, siehe Johns Antwort; Sie möchten IsSynchronizedWithCurrentItem verwenden. –

2

Geben Sie Ihrer ComboBox einen Namen und binden Sie sie an SelectedItem.

Zum Beispiel:

<ComboBox x:Name="MyComboBox" ItemsSource="{Binding MyList}" /> 

<Grid DataContext={Binding ElementName=MyComboBox, Path=SelectedItem> 
... 
</Grid> 
6

Einstellung IsSynchronizedWithCurrentItem auf der ComboBox wird das aktuelle Element mit seiner Auswahl aktualisieren (nicht sicher, ob Sie bereits dies tun). Sie können dann dieselbe Sammlung binden und auf ihr aktuelles Element mit der Bindung zugreifen:

<ComboBox ItemsSource="{Binding Names}" IsSynchronizedWithCurrentItem="True" /> 
<Button Content="{Binding Path=Names/}"/>