【问题标题】:Show/Hide all datagrid columns from datacontext wpf显示/隐藏数据上下文 wpf 中的所有数据网格列
【发布时间】:2017-06-22 10:36:22
【问题描述】:

我需要将标题中的 Datagrid columns visibility 从 context menu 更改。默认情况下,所有列的可见性都在 XAML 代码中设置。

<DataGridTextColumn Visibility="Visible" Binding="{Binding Story}" Header="Story" />

我不想从 ViewModel 绑定每个列的可见性。 如果所有列都被隐藏,我想要将所有列的可见性设置为可见,反之亦然。全部来自 XAML 代码,没有绑定列代码内的可见性。

【问题讨论】:

  • 听起来您需要创建一个实现 IValueConverter 的类,该类采用您的模型并返回适当的可见性值
  • 如果整个列被隐藏,你应该如何显示上下文菜单?
  • @mm8 我添加了一个空列作为临时解决方案,并在显示一列或多列时将其删除,通过循环遍历所有列和设置他们的知名度。但我正在寻找仅使用 XAML 代码的解决方案。 (不用于添加空列)因为这不是 MVVM 方法。
  • MVVM 不是关于消除代码的。它是关于关注点的分离。 XAML 是一种标记 语言。添加代码以在控件本身或视图中隐藏/显示 DataGrid 的列是非常好的。
  • @mm8 谢谢,我刚刚根据你的评论做了一个快速的研究,你是绝对正确的。谢谢你:)

标签: c# wpf datagrid contextmenu visibility


【解决方案1】:

我添加了一个空列作为临时解决方案,并在显示一个或多个列时将其删除,通过循环遍历所有列并设置它们的可见性,我已经使用点击事件实现了我想要的。但我正在寻找仅使用 XAML 代码的解决方案。

MVVM 不是关于消除代码的。它是关于关注点的分离。 XAML 是一种标记语言。添加代码以在控件本身或视图中隐藏/显示 DataGrid 的列是非常好的。

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 2011-05-28
    • 1970-01-01
    • 2013-04-19
    • 2011-05-25
    • 2023-03-30
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多