Перепривязать сетку данных, когда окно закрыто - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть сетка данных, которая отображает данные с сервера SQL.У меня есть кнопка добавления, при нажатии на которую открывается новое окно, в которое пользователь может поместить информацию о добавляемом новом элементе.Когда пользователь нажимает «Сохранить», данные сохраняются в базе данных, но не отображаются в сетке.Есть ли способ, которым я могу сделать привязку сетки данных при закрытии окна добавления?Дайте мне знать, если нужно больше информации.Спасибо.

В моем главном окне, содержащем код сетки данных, у меня есть кнопка добавления:

private void btnAdd_Click(object sender, RoutedEventArgs e)
{
        showAddWindow();
}

И метод showAddWindow:

private void showAddWindow()
{
    add addWindow = new  add(dgDataView);
    addWindow.Owner = this;
    addWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
    addWindow.ShowDialog();
}

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Если вам известен идентификатор нового вставленного объекта, вы можете отправить его в основную форму и вызвать Add.Row в сетке с новой информацией.Таким образом, вы не сделаете обратный вызов в базу данных для повторного связывания.

0 голосов
/ 01 апреля 2011

Предполагается, что это WinForms:

Во-первых, при вызове окна «Добавить» используйте ShowDialog () вместо Show ()

В основной форме с DataGrid код будет выглядеть как

private void btnAdd_Click(Object sender, EventArgs e)
{
   DialogResult b =    frmAdd.ShowDialog();
   if(b == DialogResult.Ok)
   {
    // code to re-bind the grid here.
   }
}

в форме frmAdd, вам нужно будет сделать так, чтобы ваша кнопка Сохранить установила DialogResult для формы в DialogResult.Ok после обновления базы данных.

Я предполагаю, что вы пытались сделать следующее: private void btnAdd_Click (Отправитель объекта, EventArgs e) { frmAdd.ShowDialog (); // код для повторной привязки сетки здесь. }

Разница в том, что при вызове ShowDialog () основная форма будет ждать, пока форма "add" не закроется, чтобы продолжить выполнение. Во втором примере кода, использующем только Show (), код для повторного связывания сетки происходит сразу после отображения формы «Добавить», прежде чем пользователь получит возможность обновить данные.

(обратите внимание, я сделал этот код на макушке, а не в Visual Studio, поэтому в нем могут быть ошибки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...