同じDataGridの中からなので簡単に取得できるかと思ったのですが、トリッキーでした。
最初は下のようにElementNameで簡単に取得できると思ったのですが甘かった。
Width="{Binding ElementName=hogehoge, Path=Width}"
Binding datagrid column width
Ihavetwodatagridswithonecolumneach.First:<DataGrid.Columns><DataGridTextColumnx:Name="FilterTextCol01"IsReadOnly="False"Wid...
DataGrid Columnsは抽象オブジェクトなので、logical treeやvisual treeに現れない。
そこにはnamescopeがないのでElementNameを使ってのBindingはできない。
という事らしいです。
ElementNameではなく、Source={x:Reference Hogehoge}, Path=ActualWidh}で行けました。
<DataGrid>
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel Background="LightBlue" Orientation="Horizontal">
<DataGridCell Content="{Binding Name}" Width="{Binding Source={x:Reference CategoryColumn}, Path=ActualWidth}"/>
<DataGridCell Content="FUGA" Width="{Binding Source={x:Reference JanuaryColumn}, Path=ActualWidth}" />
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
<DataGridTextColumn x:Name="CategoryColumn" Header="Category" Binding="{Binding PaidForCategory}" />
<DataGridTextColumn x:Name="JanuaryColumn" Header="1月" Binding="{Binding January}" />
</DataGrid.Columns>
</DataGrid>
コメント