我有两个具有相同行数的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。 这就是它当下的样子: 但我希望DataGrid2中的特定行具有DataGrid1中另一行的行高。所以例如DataGrid2中ID为12940 + rm的行与DataGrid1中的行具有相同的高度。
答案 0 :(得分:0)
您应该在XAML中定义绑定:RowHeight="{Binding ElementName=m_DataGrid1, Path=RowHeight}"
或者,如果你真的想在代码中绑定:
m_DataGrid2.SetBinding(DataGrid.RowHeightProperty, new Binding("RowHeight")
{
Source = m_DataGrid1
});