У меня есть пользовательский контроль (ItemsView), который я использую в одном из моих других представлений. Так как мне нужно получить доступ к его ViewModel, ItemsViewViewModel содержится в ViewModel представления, содержащего элемент управления. Я использую этот элемент управления много раз, и считаю полезным связать коллекцию в ItemsSource моего элемента управления ItemsView (иначе, в зависимости от вида, который его использовал) Это работает, но не все время.
Вот некоторый код:
<local:ItemsView DataContext="{Binding Path=ItemsViewModel}" ItemsSource="{Binding Path=DataContext.CurrentItem.Children, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Проблема в том, что DataContext для ItemsView иногда задается до ItemsSource, а иногда и после. Это проблематично, потому что ItemsSource является свойством зависимости, связанным с ItemsViewViewModel.
Есть ли способ каждый раз устанавливать DataContext перед ItemsSource?