DataGridColumn - 如何将可见性绑定到 DataGrid 宽度

DataGridColumn - How to Bind the Visibility to DataGrid Width

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

<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}"
                        />

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

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

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