gpt4 book ai didi

c# - 如何在 wpf datagrid 中绑定(bind)行标题?

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:02 24 4
gpt4 key购买 nike

在我的项目中,我想要像 Outlook 日历这样的数据网格行标题值。假设那是 9.00、9.30、10.00、10.30.... 但它不是固定的,它可能会有所不同,.. 晚上 9 点、晚上 10 点。

我为此使用了两个 TextBlock,我也得到了几乎相同的形状。但我的值是固定的,即 1-00、1-00,1-00、1-00,1-00、1-00、......

我的代码-

<DataGrid AutoGenerateColumns="False" Height="560" HorizontalAlignment="Left" Margin="30,54,0,0" Name="myDataGrid" VerticalAlignment="Top" Width="884" MouseDoubleClick="myDataGrid_MouseDoubleClick" IsEnabled="True" SelectionUnit="Cell">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="1" Foreground="#9493CF" FontSize="16" />
<TextBlock Text="00" Foreground="#9493CF" />
</StackPanel>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.ContextMenu>
<ContextMenu x:Name="LeftClickMenu">
<MenuItem Header="New Appointment" Click="MenuItem_Click"/>
<!--<MenuItem Header="Save"/>
<MenuItem Header="Print"/>-->
<Separator/>
<MenuItem Header="Exit"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>

我想要的-

enter image description here

我得到了什么-

enter image description here

最佳答案

您可以在第二个 textBlock 上指定 negative top margin:

<TextBlock Text="00" Foreground="#9493CF" Margin="1,-5,0,0"/>

负上边距的输出:

enter image description here

无边距输出:

enter image description here

更新:

如果您希望 header 可自定义,则需要模型类中的一个属性(表示行的对象)说时间不同的行会有所不同。对于第一行,时间值将为 9,第二行为 10,依此类推。

然后你可以像这样绑定(bind)到那个属性:

<StackPanel Orientation="Horizontal" VerticalAlignment="Center" 
HorizontalAlignment="Center">
<TextBlock Text="{Binding Path=DataContext.Time,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=DataGridRowHeader}}"
Foreground="#9493CF" FontSize="16" />
<TextBlock Text="00" Foreground="#9493CF" />
</StackPanel>

关于c# - 如何在 wpf datagrid 中绑定(bind)行标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781564/

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