コンテキストメニューからデータグリッドの列を表示/非表示しようとしています。私は、このXAMLで、そのためのバインディングを使用しようとしていた:私も、このようなBindsDirectlyToSource=True
やUpdateSourceTrigger=PropertyChanged
など他のオプション、で実験チェック可能なメニュー項目への可視性の表示に、WPFの「サービスプロバイダにINameResolverサービスがありません」というエラーが表示されます
<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>
。ただし、menuitemをチェック/チェック解除すると、カラムの可視性が変わらない。私は間違って何をしていますか?純粋なXAMLではこれが実際に可能ですか?
this質問では、答えはx:Reference
を使用します。私もそれを試みたがエラーを受けた
サービスプロバイダーにはINameResolverサービスがありません。
GoogleはこれがVS2010のバグだと教えてくれましたか?これを解決するには何ができますか? VS2012に切り替えるのがベストショットですか?ここで
。私はそれが到着するまで待たなければならないことを知っていた;)ありがとう! 問題が解決しない限り、デザイナーが作業を拒否したという問題がありました。これを確認して修正する方法がありますか? – CBenni
私はこれが「深刻な」問題ではないと思います。 'Microsoft'はエラーを修正せず、悪化します:)。私が間違っていないと、彼らはエラーのためにそれを認識しなかったので、修正は長い時間待つことができます。私は自分のプロジェクトに 'x:Reference 'を個人的に使用しており、問題は見られません。 –
"InvalidOperationExceptionが 'Reference'にスローされました:サービスプロバイダにINameResolverサービスがありません。詳細については、ここをクリックしてください。デザイナータブに表示されます。それは無効になっているので、私はデザイナーをまったく使用できません。私はプロジェクトが終了するまで参照を削除します – CBenni