从C#代码动态切换WPF网格列的可见性我的问题是:我找不到如何切换WPF网格列的可见性。假设遵循XAML标记:Aferwards网格填充了一些控件等。现在我想从C#代码中动态隐藏一个列。我已经尝试通过将列的定义宽度设置为零来执行此操作,例如Column1.Width=0。这可行,但我真的不喜欢这个解决方案-真的没有更好的方法吗?我正在寻找类似myGrid.Columns[0].Visibility=COLLAPSEDmyGrid.Columns[0].Visibility=COLLAPSED或Column1.Visibility=HIDDEN的内容。我找不到类似的东西-有什么想法吗?最简单的方法是添加一个命名的Grid作为顶层控件,并隐藏相关的列。然后您可以像隐藏任何其他控件一样隐藏它及其所有内容:在XAML中:...然后在代码隐藏中:GridColumn1.Visibility=Visibility.Collapsed;由于网格有多行,您可能需要按如下方式重新排列它们提示:更新>>>无需像这样重新排列主网格...您可以轻松添加两个网格控件,每行一个相关列,并将它们的可见性设置在一起:InnerGrid1.Visibility=InnerGrid2.Visibility=Visibility.Collapsed;您甚至可以将网格添加到每个单元格网格的主网格中,并完全控制一次可以看到哪些单元格。在WPF网格列和行代码隐藏项目中,它们展示了一种使用依赖属性的方法。他们设置Visible=false,但在内部,它设置Width=0。另一个想法是删除列定义背后的代码......但我想这是一个更糟糕的hack!?一个丑陋的hack,只是将宽度更改为0(看不到,不在乎)。您不应该这样做的原因有很多,但根据您的情况,这可能就足够了!请在ViewModel中实现INotifyPropertyChanged以使用以下隐藏网格。同样,您可以使用Name属性隐藏行和列定义。myGrid.Visibility=System.Windows.Visibility.Hidden;以上就是C#学习教程:动态切换WPF网格列可见性C#代码分享的全部内容,如果对大家有用还需要了解更多C#学习教程,希望大家多多关注it——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
