Я заполняю сетку данных, используя в качестве источника данных экземпляр сущности, связанный с базой данных.
using (I2SEntities1 db = new I2SEntities1())
{
dgClients.DataSource = db.Clients.ToList<Client>();
}
client
содержит свойство навигации, IColection. Это скрытый столбец в сетке данных с именем Actions.
То, что я хочу сделать, это заполнить новую сетку в другом кадре Actions
каждого Client
.
Я делаю это, беря ID
из Client
, передавая его следующему кадру, создавая в этом кадре еще один Client
, повторяющийся в базе данных и копируя в мой новый экземпляр Client
с тем же ID
передается из предыдущего кадра и затем используется его свойство навигации для заполнения новой сетки.
if (dgClients.CurrentRow.Index != -1)
{
Client_Index = Convert.ToInt32(dgClients.CurrentRow.Cells["Client_ID"].Value);
}
Form2 actionsForm = new Form2();
actionsForm.ShowDialog();
И в Форме 2.
void updateActions()
{
using (I2SEntities1 db = new I2SEntities1())
{
myClient = db.Clients.Where(x => x.Client_ID == Main.Client_Index).FirstOrDefault();
dgActions.DataSource = myClient.Actions.ToList<Action>();
}
}
Это отлично работает, но я подумал, потому что приоритет навигации уже на сетке, почему бы не взять его напрямую. Я имею в виду что-то вроде этого.
actionsForm.dgActions.DataSource = dgClients.CurrentRow.Cells["Actions"];
К сожалению, это не сработало. Это вообще возможно?