gpt4 book ai didi

c# - WPF 自定义数据网格列标题

转载 作者:太空狗 更新时间:2023-10-29 19:50:20 27 4
gpt4 key购买 nike

我需要创建一个自定义 dataGrid DataGridTextColumn,如下图所示:

Sketch

红色矩形是文本框,用于在列内搜索。

到目前为止,我已经实现了这样的数据网格(简化版本):

        <DataGrid x:Name="CompassLogDataGrid"
Grid.Row="1"
Style="{DynamicResource ResourceKey=DataGridStyle}"
IsTextSearchEnabled="True">

<DataGrid.Columns>
<DataGridTextColumn CellStyle="{StaticResource IdCell}"
x:Name="ID"
Header="ID"
Foreground="Black"
Binding="{Binding ID}"
DisplayIndex="0" />

<DataGridTextColumn x:Name="DateGTC"
Header="Date"
Binding="{Binding DateString}"
CellStyle="{StaticResource DateGTCCell}" />
</DataGrid.Columns

</DataGrid

我不知道如何创建这些文本框。任何线索将不胜感激

最佳答案

DataGridTemplateColumn 就是您要查找的内容。您可以根据需要自定义模板 -

 <DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox BorderBrush="Red" BorderThickness="3" Margin="5"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

使用示例 ItemsSource 它给出了这样的外观 -

enter image description here

编辑

如果您想自定义标题,您需要像这样为您的列提供 HeaderTemplate -

   <DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"
Header="{Binding HeaderName}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Content, RelativeSource=
{RelativeSource Mode=TemplatedParent}}"
Margin="5"/>
<TextBox BorderBrush="Red" BorderThickness="3"
Width="50" Margin="5"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>

这是外观-

enter image description here

关于c# - WPF 自定义数据网格列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15175546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com