У меня есть следующий сценарий ... У меня есть окно, которое содержит ItemsControl.Я указываю ViewModel для DataContext окна.Я указываю DataTemplate для ItemTontlate ItemControl.В DataTemplate я использую ComboBox, а для ItemsSource ComboBox я использую привязку RelativeSource к DataContext содержащего его окна.Во время выполнения все работает нормально, и привязка разрешается правильно, но во время разработки Cider не может подобрать ViewModel содержащего окна, к которому привязан ItemSource.
Вот мой код (я пропустилобъявления пространства имен xml вверху, но в моем коде они включены):
<Window d:DataContext="{Binding Source={StaticResource DesignViewModel}}">
<Window.Resources>
<designviewmodels:GenresEditorDesignViewModel x:Key="DesignViewModel" />
</Window.Resources>
<ItemsControl Grid.Row="0" Margin="3" ItemsSource="{Binding Path=CurrentState}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid DataContext="{Binding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="20"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" Margin="3,0,3,0"
ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.AvailableGenres,
Mode=OneWay}"
DisplayMemberPath="Name"
SelectedItem="{Binding Path=Genre, Mode=TwoWay}" DataContext="
{Binding}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Window>
Таким образом, в основном из приведенного выше фрагмента кода Path = DataContext.AvailableGenres не может быть разрешен во время разработки, но во времяВремя выполнения разрешено правильно.
Кто-нибудь знает, если я что-то делаю неправильно, или это проблема с парсером Wpf xaml, что он не может разрешить привязки к RelativeSources во время разработки?