WPF --- 如何以Binding方式隐藏DataGrid列
引言如题,如何以Binding的方式动态隐藏DataGrid列?预想方案像这样:先在ViewModel创建数据源 People 和控制列隐藏的 IsVisibility,这里直接以 MainWindow 为 DataContextpublic partial class MainWindow : Window, INotifyPropertyChanged { public MainW...
本文介绍了如何以Binding的方式动态隐藏DataGrid列。作者首先创建了数据源People和控制列隐藏的IsVisibility,并使用VisibilityConverter将布尔值转化为Visibility。然后在界面中绑定IsVisibility,并使用转化器转化为Visibility,最后增加一个CheckBox控制是否显示列。作者发现直接找DataContext的方式无法生效,因为DataGridColumn不在可视化树中。为了解决这个问题,作者借助了System.Windows.Freezable抽象类,创建了一个自定义Freezable类,实现了预期功能。最后作者欢迎读者留言讨论更优雅的方案。