【发布时间】:2019-06-09 16:51:00
【问题描述】:
我正在努力通过将 Visibility 属性绑定到 viewModel 的属性来隐藏 Datagrid 的列。 ItemsSource 工作正常,我在网格中有很多行,Datacontext 设置正确。你能帮我解决我做错了什么吗?谢谢
<StackPanel>
<DataGrid ItemsSource="{Binding SortedPlanning}" IsReadOnly="True" AutoGenerateColumns="False" CanUserResizeRows="False">
<DataGrid.Columns >
<DataGridTextColumn Header ="NNI" Binding="{Binding SortedPlanning.Nni}" Width="80" Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type StackPanel}}, Path=ColumnVisibility}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header ="Nom" Binding="{Binding LastName}" Width="120" Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ColumnVisibility}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header ="Prénom" Binding="{Binding FirstName}" Width="80" Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=ColumnVisibility}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGridTextColumn>
<DataGridTextColumn Header ="Campagne" Binding="{Binding Campaign}" Width="120">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid>
</StackPanel>
查看模型:
public interface IPlanningViewModel : IDisposable
{
ObservableCollection<PlanningEntry> SortedPlanning { get; }
Visibility ColumnVisibility { get; }
bool FilterGrid { get; set; }
DateTime FromDate { get; set; }
DateTime ToDate { get; set; }
}
我希望列“NNI”、“Nom”和“Prénom”绑定到 VM 的 ColumnVisibility,但它没有发生。
【问题讨论】: