Привязка видимости к проверяемому пункту меню показывает ошибку «Провайдеру службы не хватает службы INameResolver» в WPF
Я пытаюсь показать / скрыть столбцы таблицы данных через контекстное меню. Я пытался использовать привязки для этого с этим XAML:
<Grid>
<DataGrid AutoGenerateColumns="False" Name="dataGrid1">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Show Column 1" IsCheckable="True"
x:Name="showcol1" IsChecked="True" />
<MenuItem Header="Show Column 2" IsCheckable="True"
x:Name="showcol2" IsChecked="False" />
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Columns>
<DataGridTextColumn Header="Col 0" />
<DataGridTextColumn Header="Col 1"
Visibility="{Binding ElementName=showcol1,
Converter={StaticResource BooleanToVisibilityConverter},
Path=IsChecked}" />
<DataGridTextColumn Header="Col 2"
Visibility="{Binding ElementName=showcol2,
Converter={StaticResource BooleanToVisibilityConverter},
Path=IsChecked}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
Я даже экспериментировал с другими вариантами, такими какBindsDirectlyToSource=True
а такжеUpdateSourceTrigger=PropertyChanged
, Тем не менее, столбцы не меняют свою видимость, когда я проверяю / снимаю отметку с пунктов меню. Что я делаю неправильно? Это действительно возможно в чистом XAML?
Вэто вопрос, ответ используетx:Reference
, Я тоже пытался, но получил ошибку
У поставщика услуг отсутствует служба INameResolver.
Гугл сказал мне, что это ошибка в VS2010? Что я могу сделать, чтобы решить эту проблему? Или мой лучший шанс перейти на VS2012?