DataGridView 中的 wpf 双列
wpf Double Column in DataGridView
我想使用 wpf 在 c# 中的数据网格视图上绑定数据 table。
我绑定成功了,但问题是,我想将列绑定为行header。此列现在是双列。
sda.Fill(dt);
if (isPaddock)
{
dt.Columns["Paddock1"].ColumnName = "Paddock 1";
dt.Columns["Paddock2"].ColumnName = "Paddock 2";
dt.Columns["Paddock3"].ColumnName = "Paddock 3";
dt.Columns["Paddock4"].ColumnName = "Paddock 4";
dt.Columns["Paddock5"].ColumnName = "Paddock 5";
}
buchungDataGrid.ItemsSource = dt.DefaultView;
<DataGrid Background="LightGray" RowBackground="LightYellow" MouseLeftButtonUp="buchungDataGrid_MouseLeftButtonUp" AlternatingRowBackground="LightBlue" x:Name="buchungDataGrid" RowHeight="70" CanUserReorderColumns="False" FontSize="20" Margin="20,20,0,0" CanUserResizeColumns="False" Grid.Row="1" IsReadOnly="True" ColumnWidth="*" FrozenColumnCount="1" CanUserSortColumns="False" SelectionUnit="Cell" ClipboardCopyMode="None" EnableRowVirtualization="False" SelectionMode="Single">
<DataGrid.RowHeaderStyle>
<Style TargetType="DataGridRowHeader">
<Setter Property= "Content" Value="{Binding Uhrzeit}"/>
</Style>
</DataGrid.RowHeaderStyle>
但结果是 "Uhrzeit" 列是普通列,而行 header 列。
我试图删除该列,使其不可见,但我不明白它是如何工作的。
除非您将 AutoGenerateColumns
设置为 false,否则数据网格将自动生成所有列,但这意味着您需要明确指定每一列。
或者,您可以附加到 AutoGeneratingColumn
事件并在其中放置逻辑以阻止包含特定列。
在我的公司,我们已经子class编辑数据网格 class 并覆盖 OnautoGeneratingColumn
函数。我们添加了要跳过的 csv 列名列表的依赖项 属性,可以在 xaml 中设置。在 OnautoGeneratingColumn
中,我们检查要跳过的列列表。
我想使用 wpf 在 c# 中的数据网格视图上绑定数据 table。
我绑定成功了,但问题是,我想将列绑定为行header。此列现在是双列。
sda.Fill(dt);
if (isPaddock)
{
dt.Columns["Paddock1"].ColumnName = "Paddock 1";
dt.Columns["Paddock2"].ColumnName = "Paddock 2";
dt.Columns["Paddock3"].ColumnName = "Paddock 3";
dt.Columns["Paddock4"].ColumnName = "Paddock 4";
dt.Columns["Paddock5"].ColumnName = "Paddock 5";
}
buchungDataGrid.ItemsSource = dt.DefaultView;
<DataGrid Background="LightGray" RowBackground="LightYellow" MouseLeftButtonUp="buchungDataGrid_MouseLeftButtonUp" AlternatingRowBackground="LightBlue" x:Name="buchungDataGrid" RowHeight="70" CanUserReorderColumns="False" FontSize="20" Margin="20,20,0,0" CanUserResizeColumns="False" Grid.Row="1" IsReadOnly="True" ColumnWidth="*" FrozenColumnCount="1" CanUserSortColumns="False" SelectionUnit="Cell" ClipboardCopyMode="None" EnableRowVirtualization="False" SelectionMode="Single">
<DataGrid.RowHeaderStyle>
<Style TargetType="DataGridRowHeader">
<Setter Property= "Content" Value="{Binding Uhrzeit}"/>
</Style>
</DataGrid.RowHeaderStyle>
但结果是 "Uhrzeit" 列是普通列,而行 header 列。
我试图删除该列,使其不可见,但我不明白它是如何工作的。
除非您将 AutoGenerateColumns
设置为 false,否则数据网格将自动生成所有列,但这意味着您需要明确指定每一列。
或者,您可以附加到 AutoGeneratingColumn
事件并在其中放置逻辑以阻止包含特定列。
在我的公司,我们已经子class编辑数据网格 class 并覆盖 OnautoGeneratingColumn
函数。我们添加了要跳过的 csv 列名列表的依赖项 属性,可以在 xaml 中设置。在 OnautoGeneratingColumn
中,我们检查要跳过的列列表。