2016-07-31 31 views
0

Ich habe eine Gridview in DevExpress C# .when i eine Liste seiner Datenquelle binden wollen es funktioniert gut, wie Sie sehen können:Bind nur ein Objekt oder eine Klasse zu Rasteransicht in DevExpress

gridControl.DataSource = new BindingList<ViewJoint>(_jointRepository.ViewJoint().ToList()) { AllowNew = true }; 

Aber wenn ich Ich möchte nur einen Datensatz an die Datenquelle binden Ich bekomme einen Bindungsfehler:

Warum?

+0

Wahrscheinlich muss es ein "IEnumerable" sein. Sie können den einzelnen Datensatz abrufen und dann ein einzelnes Element-Array an 'DataSource' binden. –

+0

@ TomášHübelbauer Die Funktion _jointRepository.ViewJoint() gibt Ienumerable Elemente zurück –

+0

Aber 'First()' nicht, müssen Sie nehmen, was 'First' zurückgibt, was das in einem Array ist. –

Antwort

0

Wrap das Ergebnis Single in einem Array, so bleibt es ein IEnumerable:

var single = _jointRepository.ViewJoint().First(); 
var array = new[] { single }; 
gridControl.DataSource = new Binding<ViewJoint>(array) { AllowNew = true }; 

Da Sie AllowNew geben Sie auch eine List verwenden müssen, kann kein Array so neue Elemente hinzufügen funktioniert. Die neuen Objekte werden der Liste hinzugefügt. Sie müssen sie daher später auf neue Objekte überprüfen und sie entsprechend speichern/verarbeiten.

+0

Es funktioniert nicht –

+0

Können Sie die ursprüngliche Frage mit der Fehlermeldung aktualisieren, die Sie erhalten? Und erklären Sie was * Es funktioniert nicht * bedeutet? Es sagt mir nichts. –