我需要将DataGridTemplateColumn
的Visibility
绑定到DataGrid.ItemsSource
之外的属性,因为我需要将此列绑定到ViewModel
内的一个属性,而不仅仅是ItemsSource
中的一些内容。但据我所知,您只能将其绑定到ItemsSource
中的某个内容,或者使用ElementStyle
和EditingElementStyle
。
我已经尝试过以下代码:
<DataGridTemplateColumn Header="post"
Visibility="{Binding DataContext.ProjectPostVisibility
, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MvvmCommonControl:DataGrid}}"/>
我相信我的绑定是正确的,因为当我像下面这样绑定DataGridCell.Visibility
时,它可以正常工作:
DataGridCell.Visibility
like below:<DataGridTemplateColumn Header="post">
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Visibility" Value="{Binding DataContext.ProjectPostVisibility,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MvvmCommonControl:DataGrid}}"/>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn >