当前位置:编程学习 > C#/ASP.NET >>

WPF MVVM绑定问题


DataGrid初始化的时候给他绑定一个集合,我给DataGrid添加了一个右键菜单,绑定他的列集合,为什么不显示?

 <DataGrid.ContextMenu>
                <ContextMenu ItemsSource="{Binding Columns}">
                    <MenuItem Header="显示隐藏">
                        <MenuItem.ItemTemplate>
                            <HierarchicalDataTemplate>
                                <CheckBox Content="{Binding Header}" IsChecked="{Binding Visibility, Converter={StaticResource dateConverter}, Mode=TwoWay}"/>
                            </HierarchicalDataTemplate>
                        </MenuItem.ItemTemplate>
                    </MenuItem>
                </ContextMenu>
            </DataGrid.ContextMenu>


求解决!

PS:我在ListBox中可以吧DataGrid的所有列显示出来,但是为什么在ContextMenu中不显示呢? --------------------编程问答-------------------- 各位大神解决下,谢谢! --------------------编程问答-------------------- 首先确保你的ViewModel中没有Columns的值,并且Column中的实体包含Header属性和Visibility属性,
基本上可以确定你的绑定有问题 --------------------编程问答-------------------- 来人解决下啊! --------------------编程问答-------------------- 只有xaml代码,不见class部分,谁知道你的Columns是哪里定义的,谁知道你的DataContext属性设置的是什么。 --------------------编程问答--------------------
引用 4 楼 qldsrx 的回复:
只有xaml代码,不见class部分,谁知道你的Columns是哪里定义的,谁知道你的DataContext属性设置的是什么。


  <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>


--------------------编程问答-------------------- 后台就直接给DataGrid绑定了ItemsSource,DataGrid可以正常显示内容!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,