在我的项目中,我想要datagrid行标题值,如outlook calendar。假设是9.00,9.30,10.00,10.30 ......但是它不是固定的,可能会有所不同,晚上9点,晚上10点。
我正在使用两个TextBlock,我也得到了几乎相同的形状。但我的价值是固定的,即1-00,100,1-00,100-,100,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>
我想要什么 -
我得到了什么 -
答案 0 :(得分:4)
您可以在第二个textBlock上指定 negative top margin
:
<TextBlock Text="00" Foreground="#9493CF" Margin="1,-5,0,0"/>
带有负上边距的输出:
没有保证金的输出:
<强>更新强>:
如果您希望自定义标题,则需要one property in your model class
(对象代表行)说Time
,这对于不同的行会有所不同。对于第一行,时间值将为9,第二行为10,依此类推。
然后你可以像这样绑定到那个属性:
<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>