Почему Invalidate () следует вызывать вне элемента управления, тогда он может работать? - PullRequest
0 голосов
/ 28 июля 2010

Я использую C # + winforms для разработки программного обеспечения.
У меня есть UserControl, который содержит несколько DataGridView

datagridview1.datasource = from p in dc.doctor select p;

Я использую linq to sql для заполнения dataGridView с dataSource, потому что мне нужно обновить источник данных для обновления записей, поэтому я создаю новый dataContext и снова назначаю источник данных.

datagridview1.datasource = from p in dc.doctor select p;  

Сначала я обнаружил, что, хотя я сбрасываю источник данных, просмотр данных по-прежнему не может быть обновлен, кто-то сказал мне, что я должен вызывать функцию аннулирования при просмотре данных, я попытался. В определенной степени это работает. Но если я вызову Invalidate внутри класса UserControl, он не будет работать.
Если я создаю публичную функцию в классе UserControl, затем вызываю ее с помощью userControl.refreshRecord (), тогда она работает.

Может кто-нибудь указать мне, что я пропустил? Когда кто-то позвонит и объявит недействительным, когда это действительно сработает?
Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

Недействительная работа, когда управление завершает все другие вещи, такие как загрузка данных ...

0 голосов
/ 28 июля 2010

Вызов dgv.Invalidate() метод для просмотра данных.

...