2009-07-17 15 views
2

Ich habe eine Benutzersteuerung (ItemsView), die ich in einer meiner anderen Ansicht verwende. Da ich auf sein ViewModel zugreifen muss, ist das ItemsViewViewModel im ViewModel der Ansicht enthalten, die das Steuerelement enthielt. Ich verwende dieses Steuerelement zu vielen Zeitpunkten und finde es nützlich, eine Auflistung auf der ItemsSource meines ItemsView-Steuerelements zu binden (je nachdem, welche Ansicht es verwendet hat). Es funktioniert, aber nicht die ganze Zeit. Hier einige Code:WPF: Bindungsreihenfolge

<local:ItemsView DataContext="{Binding Path=ItemsViewModel}" ItemsSource="{Binding Path=DataContext.CurrentItem.Children, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" /> 

Das Problem ist, dass die Datacontext des ItemsView manchmal vor der Itemssource festgelegt ist, und manchmal nach. Dies ist problematisch, da ItemsSource eine Abhängigkeitseigenschaft ist, die mit ItemsViewViewModel verknüpft ist. Gibt es eine Möglichkeit, den DataContext immer vor der ItemsSource zu setzen?

Antwort

0

Nach InitializeComponent, SelectedIndex auf -1 setzen - das hat bei mir funktioniert.