0
我有一個動態生成的DataGrid綁定到ViewModel中的DataTable屬性。DataGridColumnHeader與StackPanel,將TextBlock/Label的內容綁定到ColumnName,動態網格
我有AutoGenerateColumnHeaders = true,它工作正常。但是,我使用DataTemplate來覆蓋包含標籤和按鈕的StackPanel的標題。我似乎無法弄清楚如何將標籤內容綁定到DataGridColumnHeader。我曾嘗試與不FindAncestor,但我相信下面是最接近的地方,我必須......問題是標籤內容=「{}」
<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我假設我只是缺少一些具有約束力的東西 - 我還在學習。 謝謝。
如果您希望標籤只顯示一下頭woulld有,只要使用'<標籤內容=「{結合}」',或者你需要從列表中獲得一定的價值? – 2014-10-01 19:37:07
這是給我一個System.StackOverflow異常。 – Aaron 2014-10-01 19:45:31
對不起,沒有什麼可以測試的,但'DataGridColumnHeader'是一個內容控件,並且由於模板內的任何內容都使用'DataGridColumnHeaders' dataContext,所以您應該可以綁定到它,也許試試'