Einzelnen Beitrag anzeigen

Marco Erdmann

Registriert seit: 28. Feb 2013
2 Beiträge
 
Delphi XE3 Professional
 
#39

AW: DSharp - Data bindings, MVVM und mehr für Delphi 2010 und höher

  Alt 28. Feb 2013, 12:26
Hallo Zusammen,

ich bin neu in diesem Forum und mache gerade meine ersten Gehversuche mit DSharp. Ich habe versucht das VirtualTree-Beispiel mit dem QuantumGrid von DevExpress nachzubauen und bin dabei auf ein Problem gestoßen: Die Spalten-Captions im Grid werden noch korrekt gesetzt, aber die Zeilen werden niemals angezeigt, obwohl die Anzahl Zeilen durchaus richtig abgefragt wird. Ich vermute, dass ich noch einen Fehler im Template habe. Die Delphi-Version ist XE3 Update 2 und das Grid ist ein TcxGridTableView.

Die Klasse in meiner IList sieht so aus:
Delphi-Quellcode:
  
TEmployee = class(TPersistent)
  private
    FFirstName: string;
    FID: Integer;
    FName: string;
  public
    constructor Create(AID: Integer; const AName, AFirstName: string);
    property FirstName: string read FFirstName write FFirstName;
    property ID: Integer read FID write FID;
    property Name: string read FName write FName;
  end;
Das TDataTemplate sieht dann foglendermaßen aus:
Delphi-Quellcode:
  
TEmployeeTemplate = class(TDataTemplate)
  public
    function GetValue(const Item: TObject; const ColumnIndex: Integer): TValue; override;
    function GetTemplateDataClass: TClass; override;
  end;
Delphi-Quellcode:
function TEmployeeTemplate.GetTemplateDataClass: TClass;
begin
  Result := TEmployee;
end;

function TEmployeeTemplate.GetValue(const Item: TObject; const ColumnIndex: Integer): TValue;
begin
  case ColumnIndex of
    (-1), 0: Result := TEmployee(Item).ID;
    1: Result := TEmployee(Item).Name;
    2: Result := TEmployee(Item).FirstName;
  end;
end;
Ich bin noch nicht soweit in den Code eingestiegen, um genau zu verstehen, an welcher Stelle die Sache schiefgeht. Muss ich eventuell weitere virtuelle Methoden von TDataTemplate überschreiben? Ein Fingerzeig in die richtige Richtung wäre sehr nett.

Vielen Dank schonmal.
  Mit Zitat antworten Zitat