![](/img/trans.png)
[英]TextBlock in StackPanel in Scrollviewer not showing all content
[英]DataGridColumnHeader with StackPanel, bind content of TextBlock/Label to ColumnName, dynamic grid
我在ViewModel中有一个绑定到DataTable属性的动态生成的DataGrid。
我有AutoGenerateColumnHeaders = true,并且工作正常。 但是,我正在使用DataTemplate用包含Label和Button的StackPanel覆盖页眉。 我似乎无法弄清楚如何将标签内容绑定到DataGridColumnHeader。 我尝试了是否使用FindAncestor,但我相信以下内容与我需要的内容最接近。问题在Label Content =“ {}”上。
<local:UserControlViewBase.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="Black" BorderThickness="1">
<StackPanel Width="Auto" Orientation="Horizontal">
<Label Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:UserControlViewBase}},Path=DataContext.TestList.ColumnName}" Padding="12,0,12,0" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Button Content="Ok" Padding="12,0,12,0" HorizontalAlignment="Center" VerticalAlignment="Center" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</local:UserControlViewBase.Resources>
//local:UserControlViewBase is just a UserControl with some extra bells and whistles added.
我对WPF还是很陌生,我假设我只是在绑定中缺少一些东西-我还在学习。 谢谢。
这就是我为使其正常工作所做的。 我不得不更改findancestor来查找DataGridColumnHeader而不是用户控件。 然后,我可以访问Column.Header属性:
<local:UserControlViewBase.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="Black" BorderThickness="1">
<StackPanel Width="Auto" Orientation="Horizontal">
<Label Width="75" Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridColumnHeader}},Path=Column.Header}" Padding="12,0,12,0" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Button Content="Ok" Padding="12,0,12,0" HorizontalAlignment="Center" VerticalAlignment="Center" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</local:UserControlViewBase.Resources>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.