2016-04-19 15 views
0

Ich habe ein WPF-Projekt mit einem Haupt Window und einem UserControl.WPF UserControl löst NullReferenceException beim Laden

Im Usercontrol stelle ich einen GridControl.ItemsSourcegridcontrol.ItemsSource = query.tolist() verwenden, aber wenn das Laden Usercontrol es löst eine Exception:

"The object reference not set to an object"

Trotz der Abfrage zurückkehr 40 Datenzeilen.

Der Code wird im MainWindow ausgeführt, aber die UserControl löst die Ausnahme aus.

+0

Haben Sie Pause zeigen versucht, oder versuchen Sie/fangen, um zu sehen, wo er den Fehler zu werfen? – Blinx

+0

ye lieber Freund ich habe es viel Fehler werfen, wenn ich cal usercontrol.but, wenn ich gridcontrol.itemsource = query.tolist() entfernen, hat es kein Problem und usercotrol laden mit leeren Gridcontrol – pooooooneh

+0

Wenn Sie im Break-Modus durchlaufen Kannst du jeden Wert testen und sehen, ob irgendwelche null sind? Gridcontrol und Abfrage. – Joe

Antwort

2

Konsolidieren das Gespräch aus den Kommentaren zu der Frage:

A NullReferenceException auf der Linie geworfen wird

gridcontrol.ItemsSource = query.ToList(); 

als gridcontrol ist null.

Weitere Informationen zu diesem Exception sehen What is a NullReferenceException, and how do I fix it?

Ich vermute, dass die fragliche Zeile vor dem Aufruf im Konstruktor InitializeComponent().

Diese Methode initialisiert alle Steuerelemente in UserControl. Wenn Sie versuchen, eine Control vor einem Aufruf dieser Methode zu verwenden, wird es daher NullReferenceException werfen.

Was werden Sie sehen wollen, ist:

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

Dank viel ich das tun und jetzt meine Gridcontrol works.i eine Sammlung Ansicht Quelle haben es hat den gleichen Fehler Collection null ist und i gesetzt es nach Methode initialisieren der Code: collectionviewsource.source = ObservableCollection() – pooooooneh

+0

ObservableCollection _Personnel = neue 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

Froh, dass das erste Problem behoben wurde, wenn Sie diese Antwort als richtig markieren könnten, wäre das großartig. Dieses neue Problem scheint, als würde es die Ressource nicht korrekt analysieren. Mehr kann ich nicht mehr sagen. Vielleicht möchten Sie darüber nachdenken, eine neue Frage zu stellen. – Blinx

Verwandte Themen