выбранный индекс в datagridview - PullRequest
0 голосов
/ 18 января 2012

У меня есть две таблицы. Я выбираю запись из таблицы 1 для отображения информации в таблице 2 при двойном щелчке на одной из данных. У меня есть окно для обновления данных после закрытия этого окна. Мне нужно обновить две таблицы, и я хочу одну и ту же строкубыть выбранным в таблице 1. Я работал в wpf, и я использую selectedindex.

Теперь я использую это на данный момент:

int index = dgTable1.Grid.CurrentRow.Index;
///**
frm.ShowDialog();
frm.Dispose();
ReloadTable1();
selectedindex(index)

с

private void selectindex(int index)
{
    dgwTable1.Grid.Rows[index].Selected = true;
    DATAtype data= dgwTable1.GetObjectFromRow<DATAtype>(index);
    LoadTable2(data);
}

Эторабота Но у меня есть Grid_SelectionChanged для table1 и не запускаю, я должен перезагрузить данные, также, если при использовании этой кнопки полоса прокрутки не работает, я возвращаюсь к верхней части таблицы 1!

Но я знаю этоне правильный способ сделать это :( и это слишком просто в wpf: /

dgTable - это UserControl с DataGridView в качестве сетки

Ответы [ 3 ]

1 голос
/ 30 марта 2013

Для сохранения текущего индекса:

 int index = dataGridView1.CurrentRow.Index;

После редактирования:

 dataGridView1.Rows[index].Selected = true; 

Надеюсь, это поможет.

0 голосов
/ 18 января 2012

На мой взгляд, самый простой способ решить ваши проблемы - это использовать шаблон MVVM.В вашей ViewModel для вашего View, который содержит две DataGrids, у вас есть свойство, подобное «SelectedNameOfContentClass», которое привязано к первому DataGrids SelectedValue-property.Это свойство "SelectedNameOfContentClass" также привязано к секундам DataSrid DataSource.Поэтому, если вы изменяете выбранную строку в первой DataGrid, источник второй DataGrid автоматически обновляется.

Список, связанный с первым источником данных Datagrids, должен быть ObservableCollection.Для диалога вы можете использовать интерфейс IEditableObject в ваших объектах.

0 голосов
/ 18 января 2012

Может быть DataView и BindingSource с фильтрами, которые лучше использовать?

DataView view = new DataView(_table);
BindingSource tSource = new BindingSource();
tSource.DataSource = view;
_dataGridView.DataSource = _tSource;
_tSource.Filter = "Value=0";

вот так ...

Для сохранения прокрутки используйте myDataGridView.FirstDisplayedScrollingRowIndex

int scrollIndex = 0;
        if (myDataGridView.FirstDisplayedScrollingRowIndex >= 0)
            scrollIndex = myDataGridView.FirstDisplayedScrollingRowIndex;

после редактирования:

if (myDataGridView.Rows.Count > 0)
                    myDataGridView.FirstDisplayedScrollingRowIndex = scrollIndex;

Надеюсь, это поможет.

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