首先确保你的ViewModel中没有Columns的值,并且Column中的实体包含Header属性和Visibility属性,
基本上可以确定你的绑定有问题

解决方案 »

  1.   

    只有xaml代码,不见class部分,谁知道你的Columns是哪里定义的,谁知道你的DataContext属性设置的是什么。
      

  2.   


      <DataGrid Grid.Row="0" x:Name="datagrid" IsReadOnly="True" FrozenColumnCount="2" AutoGenerateColumns="False">
                <DataGrid.ContextMenu>
                    <ContextMenu ItemsSource="{Binding ElementName=datagrid,Path=Columns}">
                        <ContextMenu.ItemTemplate>
                            <HierarchicalDataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox Content="{Binding Header}" IsChecked="{Binding Visibility, Converter={StaticResource dateConverter}, Mode=TwoWay}"/>
                                </StackPanel>
                            </HierarchicalDataTemplate>
                        </ContextMenu.ItemTemplate>
                    </ContextMenu>
                </DataGrid.ContextMenu> 
    ......
    </DataGrid>
      

  3.   

    后台就直接给DataGrid绑定了ItemsSource,DataGrid可以正常显示内容!