Просто подумайте, ваши DataTables находятся в одном наборе данных?
Если это так, вы можете создать именованное DataRelation между столбцами двух таблиц (представьте внешний ключ).
Затем вы можете добавить в свою таблицу Calculated DataColumn со свойством Выражение , для которого установлено значение «Child (RelationName) .ColumnName» или «Parent (RelationName) .ColumnName» в зависимости от направления взаимосвязи .
Это даст вам тот же эффект, что и копирование столбца, но я полагаю, что оно оценивает его только лениво. Так что, возможно, это даст вам то, что вам нужно.
Вот пример здесь того, как это работает. В примере используется агрегатная функция Sum , но вам просто нужно сослаться на имя столбца, и оно будет дублироваться в вашей DataTable
myDataSet.Relations.Add(
"Orders2OrderLines",
myDataSet.Tables["Orders"].Columns["OrderID"],
myDataSet.Tables["OrderLines"].Columns["OrderID"]);
ordersTable.Columns.Add("OrderTotal", typeof(decimal), "Sum(Child(Orders2OrderLines).ExtendedPrice)");
НТН