【问题标题】:DataGridColumn - How to Bind the Visibility to DataGrid WidthDataGridColumn - 如何将可见性绑定到 DataGrid 宽度
【发布时间】:2016-11-16 18:41:15
【问题描述】:

我尝试向用户显示我的数据网格中一些不太重要的列,只有当有足够的空间(整个程序的宽度)可用时。所以我想用转换器将列的可见性绑定到数据网格的实际值。 我写的所有转换器都运行良好,但在这种情况下什么也没发生,这意味着没有调用转换器。我通过调试日志检查了这一点。

<mui:DataGridTextColumn Header="Kilometer" 
                        MinWidth="20" 
                        Width="SizeToCells"
                        Binding="{Binding Path=Kilometer, TargetNullValue='-', FallbackValue='-'}"  
                        Visibility="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, TargetNullValue=Collapsed, FallbackValue=Collapsed, Converter={StaticResource IntAsLimit2VisibilityCollapsed}, ConverterParameter=1300}"
                        />

让我做错了什么?也许在这种组合中是不可能的?

【问题讨论】:

    标签: c# wpf datagrid converter


    【解决方案1】:

    here 所述,DataGrid 列不位于 DataGrid 的可视化树中,我们无法使用RelativeSource 到达外部DataContext。 我们只能使用 x:Reference 到外部 FrameworkElement。

    另外,here 是一个类似的问题,有一个可能的解决方案(您不需要设置宽度并且可能会避免循环引用)。

    【讨论】:

    • 谢谢很多我没有找到这些链接。 :/ 但我记得:这个代理故事,但有一件事很有趣,因为它有效:
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2012-10-04
    • 2010-12-01
    • 2014-01-03
    • 2018-10-26
    • 2018-07-15
    相关资源
    最近更新 更多