如何在两个DataGrids之间绑定rowheight?

时间:2014-12-16 10:14:47

标签: c# wpf binding datagrid row

我有两个具有相同行数的DataGrids。但可能是DataGrid1中的一行中有更多文本,而rowheight将比DataGrid2中的更大。我已经尝试过这样的事情:

 for (int i = 0; i < DataGrid1.Items.Count; i++)
        {
            DataGrid1.ScrollIntoView(DataGrid1.Items[i]);
            DataGridRow row = (DataGridRow)DataGrid1.ItemContainerGenerator.ContainerFromIndex(i);
            Binding bindingHeight = new Binding();
            bindingHeight.Mode = BindingMode.TwoWay;
            bindingHeight.Source = row.ActualHeight;
            bindingHeight.Path = new PropertyPath(DataGridRow.HeightProperty);

            DataGrid2.ScrollIntoView(DataGrid2.Items[i]);
            DataGridRow row2 = (DataGridRow)DataGrid2.ItemContainerGenerator.ContainerFromIndex(i);
            BindingOperations.SetBinding(row2, DataGridRow.HeightProperty, bindingHeight);
        }

任何想法如何让行具有相同的高度?

修改 问题是我想绑定单行的rowheight。 这就是它当下的样子: enter image description here 但我希望DataGrid2中的特定行具有DataGrid1中另一行的行高。所以例如DataGrid2中ID为12940 + rm的行与DataGrid1中的行具有相同的高度。

1 个答案:

答案 0 :(得分:0)

您应该在XAML中定义绑定:RowHeight="{Binding ElementName=m_DataGrid1, Path=RowHeight}"

或者,如果你真的想在代码中绑定:

 m_DataGrid2.SetBinding(DataGrid.RowHeightProperty, new Binding("RowHeight")
            {
                Source = m_DataGrid1
            });