2016-04-19 2 views
0

У меня есть проект WPF с основным Window и UserControl.WPF UserControl throws NullReferenceException при загрузке

В Usercontrol я поставил GridControl.ItemsSource используя gridcontrol.ItemsSource = query.tolist(), но при загрузке Usercontrol он бросает Exception:

"The object reference not set to an object"

Несмотря на запрос возвращающегося 40 строк данных.

Код выполнен в MainWindow, но UserControl выдает исключение.

+0

Пытались ли вы перерыв, указывающей или попытаться/поймать, чтобы увидеть, где он бросает ошибку? – Blinx

+0

ye дорогой друг, я сделал это alot ошибка throw, когда я cal usercontrol.but, если я удалю gridcontrol.itemsource = query.tolist() у него нет проблем и загрузка usercotrol с пустым gridcontrol – pooooooneh

+0

Когда вы переходите в режим разрыва , можете ли вы проверить каждое значение и посмотреть, являются ли они нулевыми? И gridcontrol, и запрос. – Joe

ответ

2

Закрепление разговор от комментариев по этому вопросу:

NullReferenceException брошено на линии

gridcontrol.ItemsSource = query.ToList(); 

в gridcontrol равна нулю.

Для получения дополнительной информации об этой Exception см What is a NullReferenceException, and how do I fix it?

Я предполагаю, что линия в вопросе перед вызовом InitializeComponent() в конструкторе.

Этот метод инициализирует все элементы управления в UserControl. Поэтому, пытаясь использовать Control перед вызовом этого метода, он выкинет NullReferenceException.

Что вы хотите увидеть это:

public YourUserControl() 
{ 
    InitializeComponent(); 
    gridcontrol.ItemsSource = query.ToList(); 
} 
+0

спасибо alot Я делаю это, и теперь мой gridcontrol works.i имеет источник просмотра коллекции, он имеет ту же ошибку. Collectionviewsource имеет значение null, и я установил его после инициализации метода: collectionviewsource.source = an observablecollection() – pooooooneh

+0

ObservableCollection _Personnel = новый ObservableCollection (); CollectionViewSource PersonCollection = new CollectionViewSource(); DevExpress.Xpf.Docking.DockLayoutManager dockmanager; public UC_Personnel (DevExpress.Xpf.Docking.DockLayoutManager _dockManager) { InitializeComponent(); PersonCollection = (CollectionViewSource) this.Resources ["MyResource"]; this.dockmanager = _dockManager; this._Personnel = new ObservableCollection (context.Personnels); PersonCollection.Source = this._Personnel; } – pooooooneh

+0

Рад, что первая проблема исправлена, если вы можете отметить этот ответ как правильный, что было бы здорово. Эта новая проблема кажется, что она не может правильно анализировать ресурс. Я не могу сказать больше без каких-либо подробностей. Вы можете рассмотреть вопрос о постановке нового вопроса. – Blinx

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