2013-02-20 4 views
0

Что мне нужно сделать, так это захватить данные перед их загрузкой в ​​dgv и изменить одно из свойств. То, что я сейчас общий метод, который я использую для создания DataSource для моего DGV:Windows Forms - как получить данные, с которыми заполняется DataGridView

dgv.DataSource = new SortableBindingList<T>(result.ResultEntities); 

А что я хочу сделать, это получить эти данные, манипулировать ей, как мне нужно, а затем вернуть измененные данные для загрузки в dgv.

Я пытался сделать это, просто сделать это:

SortableBindingList<MyType> someVar = (SortableBindingList<MyType>)dgvMydgv.DataSource; 

ну, это, кажется, что это не способ сделать это.

+0

Это поражает меня, чтобы увидеть этот вид менталитета winforms. Почему бы вам просто не оставить ссылку где-нибудь в «SortableBindingList ' ?? Вместо того, чтобы взломать необходимость использовать свойство DataSource для любого элемента пользовательского интерфейса? –

+0

Поскольку я думал, что это не так странно, чтобы получить данные сетки для какой-либо цели, и на самом деле это то, что я хочу сделать. – Leron

+1

победит разработчиков, когда-либо понимающих, что [пользовательский интерфейс не является данным] (http://stackoverflow.com/questions/14381402/wpf-programming-methodology/14382137#14382137) ?? –

ответ

1

Если вы привязываете локальную переменную, такую ​​как ваш sortableBindingList, к datagridview, ее невозможно получить после успешного создания базы данных datagrid. datasource будет NULL после события «DataBound()» - Event.

FYI:

Если вы связываете SqlDataSource к вашей DataGridView вы можете экспортировать в sortablebindinglist после связанный источник данных.

вы должны прочитать каждую колонку в каждой строке и сохранить его в новом Defined sortablebindinglist, а затем привязать источник данных к GridView:

foreach (GridViewRow gvrMyRow in gvFields.Rows) 
{ 
    foreach (TableCell tcMyCell in gvrMyRow.Cells) 
    { 
     string sMyValue = tcMyCell.Text; 
    } 
} 

Имейте в виду:

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

+0

Я до сих пор не понимаю, в чем разница между этим и сохранением ссылки на фактический исходный список. –

+0

Сохранение ссылки в исходном списке намного лучше и «нормальный путь» :), но он попросил прочесть существующие строки gridview. – noonecares

Смежные вопросы