Привязка видимости к проверяемому пункту меню показывает ошибку «Провайдеру службы не хватает службы 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?

Ответы на вопрос(1)

Ваш ответ на вопрос