如何通过绑定在WPF DataGrid
中隐藏列?
这是我所做的:
<DataGridTextColumn Header="Column header"
Binding="{Binding ColumnValue}"
Width="100"
ElementStyle="{StaticResource DataGridRightAlign}"
Visibility="{Binding MyColumnVisibility}" />
这是我得到的内容(除了仍可见的列):
System.Windows.Data Error: 2 : 找不到目标元素的统治FrameworkElement或FrameworkContentElement。BindingExpression:Path = MyColumnVisibility; DataItem = null;目标元素为'DataGridTextColumn'(HashCode = 1460142);目标属性为'Visibility'(类型为'Visibility')
如何修复绑定问题?
x:Name
并引用其Visibility
属性即可。虽然不是很直接明了,但还是很简单。我想,当绑定到引用元素的 DataContext 属性时,你会“劫持”其他元素来共享其 DataContext 与无法访问的 DataGridColumn,对吗?dummyElement 就是桥梁。 - ygoex:Reference
- 在WPF 4.0中,至少对于Visual Studio 2010可能仍会出现异常:Service provider is missing the INameResolver service
,但可以忽略它。据我所知,这在WPF 4.5中已经修复。 - Anatoliy Nikolaev