wpf - 为什么在 WPF DataGrid 中显示附加列
问题描述
我正在使用 DotNet 4.0,在我的 Windows 应用程序中 UserPermissionList 与数据网格绑定。此用户权限包含两列,它们是在 datagrid 中手动创建为 DataGridTextColumn 的。但为什么在 datagrid 中显示额外的空列。我添加了属性 AutoGenerateColumns="False" 即使它不起作用。如何删除数据网格中的空列。你能帮我解决这个问题吗?
<Window x:Class="DataGridSamples.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DataGridSamples"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid Margin="5,5,15,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Width="120" Content="User Roles:" />
<DockPanel Grid.Column="1">
<Border BorderBrush="DarkGray" Background="White" BorderThickness="2">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<DataGrid Style="{DynamicResource DGHeaderStyle}" Background="White" HeadersVisibility="All" IsHitTestVisible="False"
CanUserResizeRows="False" CanUserResizeColumns="False" CanUserSortColumns="False" IsTextSearchEnabled="True" IsReadOnly="True" CanUserAddRows="False"
ItemsSource="{Binding Path=UserPermissionList}" CanUserReorderColumns="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Role" Binding="{Binding Path=Role}"/>
<DataGridTextColumn Header="Description" Binding="{Binding Path=Description}"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Border>
</DockPanel>
</Grid>
<Application x:Class="DataGridSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DataGridSamples"
StartupUri="MainWindow.xaml">
<Application.Resources>
<Style x:Key="DGHeaderStyle" TargetType="{x:Type DataGrid}">
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource DGCHeaderStyle}"/>
</Style>
<Style x:Key="DGCHeaderStyle" TargetType="DataGridColumnHeader">
<Setter Property="Height" Value="22"/>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="10" />
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</Application.Resources>
</Application>
解决方案
如果您不希望它水平拉伸,可以将其HorizontalAlignment
属性设置DataGrid
为:Left
<DataGrid ... HorizontalAlignment="Left">
推荐阅读
- python - slim.conv3d 中的参数是什么?
- javascript - redux 商店正在更新,但某些屏幕上未显示更改
- excel - 将 Excel 行转换为单个文本文件
- excel - 尝试创建文件时 Excel VB 错误 1004
- r - 如何从亚马逊的客户资料页面中提取产品链接
- javascript - 在设置状态 React JS 之前检查对象数组是否存在于对象数组中的简单方法
- java - 在 OpenSSL 中完成的 AES 加密已成功解密,但在 Java 中加密时失败
- kubernetes - Kubernetes - 在 pod 状态就绪后运行作业
- r - mlr - 无法在 ranger_permutation 过滤器中使用参数“重要性”
- javascript - 如何将对话流结果集成到 linebot (Node.js)?