Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 数据网格列宽同步_Wpf - Fatal编程技术网

Wpf 数据网格列宽同步

Wpf 数据网格列宽同步,wpf,Wpf,我有一个列表框,其中项目是水平构建的 我还有一个DataGrid,它的列是动态构建的 每个ListBoxItem都对应于一个DataGrid列 我想在DataGrid列和右边的ListBoxItem之间进行同步,这样每个ListBoxItem将与一列并行。此外,在调整列的大小时,它将更改ListBoxItem的大小。 如何操作?您可以将项目宽度与绑定到datagrid列actualwidth <StackPanel Grid.Column="1" Orientation="Ve

我有一个列表框,其中项目是水平构建的

我还有一个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>

如果动态创建它们,请在代码中设置绑定