У меня есть DataGrid
определяется следующим образом:Скрыть Datagrid Колонка на основе его имени собственности
<DataGrid Name="dtMydatagrid" Margin="10,10,10,10" RowHeight="20" AutoGenerateColumns="True" ItemsSource="{Binding}" Height="auto" Width="auto">
<DataGrid.Columns>
<DataGridTemplateColumn Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="TXT" Background="Transparent" Width="15" IsReadOnly="True" Visibility="Hidden" Margin="0,0,0,0"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsBKM}" Value="true">
<Setter Property="Background" Value="AQUA" TargetName="TXT"/>
<Setter Property="Visibility" Value="Visible" TargetName="TXT"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Теперь у меня есть логическое свойство в моем классе по имени IsBKM
, к которому DataGridTemplateColumn
ограничена. Таким образом, он отображается как CheckBox
. Я не хочу отображать столбец IsBKM
в моем DataGrid
. Можно ли использовать триггер и скрыть столбец, имя которого IsBKM
или любое другое решение?
Заранее спасибо.
Брус проверить имя столбца в моем XAML вместо этого. – Surjeet
Вы можете прокручивать коллекцию «Столбцы», пока не найдете ее с заголовком «Заголовок», «текст заголовка столбца», а затем используйте это. Однако в вашей колонке нет установленного в данный момент заголовка. Вы * можете * также установить имя столбца (в XAML), а затем проверить это значение «Имя» вместо использования свойства «Заголовок». – Sheridan
Не нужно перебирать все столбцы, у вас есть все, что вам нужно в аргументах события: if (e.PropertyName == "IsBKM") e.Column.Visibility = Visibility.Collapsed. – Dtex