【发布时间】:2015-08-12 19:43:16
【问题描述】:
我有一个 DataGrid ColumnHeaderStyle 问题,在我的情况下,我想将这些组件(文本块,按钮)添加到所有列标题,但也生成了错误/假列标题,因此出现列及其标题(剂量 + Btn ,Drug + Btn,Patient + Btn,Date + Btn),并加上一个没有标题名称的假列标题,其中仅包含一个按钮->“”+ btn。 Datagrid 没有预定义的列。 我的问题是如何隐藏/删除/禁用或取消这个假列标题? 有什么建议吗?
XAML:
<Window.Resources>
<Style x:Key="dgheaderstyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}" >
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding}" />
<Button Content="Click"></Button>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<DataGrid ItemsSource="{Binding}" ColumnHeaderStyle="{StaticResource dgheaderstyle}" HorizontalAlignment="Left" Height="262" Margin="10,21,0,0" VerticalAlignment="Top" Width="472">
</DataGrid>
</Grid>
后面的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
DataContext = table;
}
}
【问题讨论】: