xaml:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox VerticalAlignment="Center" FocusManager.IsFocusScope="True" Grid.ColumnSpan="2" Name="SearchTextBox" Text="{Binding Path=SearchTerm.Value, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource FontStyle}" KeyUp="SearchTextBoxKeyUp" />
<DataGrid Grid.Row="1" ItemsSource="{Binding Path=EpisodesView, Mode=TwoWay}" MouseDoubleClick="ListViewDoubleClick" Style="{StaticResource FontStyle}" KeyUp="ListViewKeyup" Name="EpisodeList" AutoGenerateColumns="False" IsReadOnly="True"
d:DataContext="{d:DesignInstance vm:Episode}">
<DataGrid.Columns>
<DataGridTextColumn Header="File" Binding="{Binding File.Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding PrettyAge}" SortMemberPath="Age" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
上記の xaml の下部にある DataGrid では、DataGrid 自体のバインディングと特定の列のバインディングの両方に対して、設計時の d:DataContext DesignInstance 参照を正しく取得することができません。
次のスニペットを DataGrid に (上記の xaml として) 含めると、DataGridTextColumns が機能し、列バインディングのインテリセンスが得られます。
d:DataContext="{d:DesignInstance vm:Episode}
しかし、DataGrid バインディングのインテリセンスは機能しなくなりました。上記のスニペットを削除すると、逆のことが起こります。DataGrid バインディングの Intellisense は機能しますが、列バインディングは機能しません。
明確にするために、これは設計時の問題にすぎません。すべてが正常に動作します。