アイテムが水平に構築されたリストボックスがあります。
また、列が動的に構築される DataGrid があります。
各 ListBoxItem は DataGrid 列に対応しています
DataGrid 列と右の ListBoxItem の間で同期したいので、各 ListBoxItem は列に平行になります。また、列のサイズを変更すると、ListBoxItem のサイズが変更されます。どうすればできますか?
アイテムが水平に構築されたリストボックスがあります。
また、列が動的に構築される DataGrid があります。
各 ListBoxItem は DataGrid 列に対応しています
DataGrid 列と右の ListBoxItem の間で同期したいので、各 ListBoxItem は列に平行になります。また、列のサイズを変更すると、ListBoxItem のサイズが変更されます。どうすればできますか?
項目の幅を datagrid 列の actualwidth にバインドできます
<StackPanel Grid.Column="1" Orientation="Vertical">
<DataGrid Grid.IsSharedSizeScope="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Some col 1" x:Name="first" />
<DataGridTextColumn Header="Some col 2" x:Name="second" />
<DataGridTextColumn Header="Some col 3" />
</DataGrid.Columns>
</DataGrid>
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel IsItemsHost="True" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<Button Content="button 1" Width="{Binding Path=ActualWidth, ElementName=first}"></Button>
<Button Content="button 2" Width="{Binding Path=ActualWidth, ElementName=second}"></Button>
</ListBox>
</StackPanel>
動的に作成する場合は、コードでバインディングを設定します。