Hier ist meine Situation - Ich beginne meine erste SL-Anwendung aus einem Windows-Hintergrund, wo ich das MVC-Muster an Ort und Stelle habe. Ich denke, dass ich dieses Muster nutzen kann, also spring ich direkt in die Erstellung einer SL-Anwendung (Lösung) mit 3 Projekten -> 1 mit meinem Modell (Geschäftsobjekte von vorher), SL-App (automatisch generiert, wenn ich SL gewählt habe Projekt) und 1 SL.Web-Projekt (wird automatisch generiert, wenn ich ein SL-Projekt ausgewählt habe).Silverlight WCF-Dienst an Grid gebunden - Grid ist leer ... fehle ich etwas?
Hier sind die Schritte, die ich getan habe: Ich habe ein leeres Raster auf meine XAML-Datei gelöscht, einen Dienst erstellt und es wird ohne Probleme erkannt. Ich habe meinem Webprojekt einen "Silverlight-aktivierten WCF-Dienst" hinzugefügt und in meinem Projekt habe ich auf mein "Model" -Projekt verwiesen. Innerhalb von [Operation], habe ich die folgende Methode (Service):
[OperationContract]
public EmployeeCollection GetEmployees()
{
EmployeeCollection employees = Model.EmployeeCollection.GetAllEmployees();
return employees;
}
Wenn ich aber das Debuggen und einen Haltepunkt setzen, ich Daten auf Rückkehr der Mitarbeiter sehen, damit ich weiß, Daten zurückgegeben wird.
Jetzt, auf meiner page.xaml.cs-Datei, scheint es, dass mein Raster nicht irgendwie gefüllt wird, aber warum nicht.
ich folgendes Snippet haben:
void MyWebService_GetEmploteesCompleted(object sender, EmployeeWebService.GetEmployeesCompletedEventArgs e)
{
dataGrid.ItemsSource = e.Result;
}
Wo sonst sollte ich suchen werden? Was kann ich vermissen? Muss ich weitere Code-Schnipsel hinzufügen, um mit meinem BLL (Model) zu arbeiten?
Vielen Dank für jeden Hinweis.
=============================
BTW, während des Debuggens, in der "Autos" Fenster, ich beachten Sie die folgenden Werte kommen durch auf _GetEMployeesCompleted():
dataGrid.ItemSource ........... Count = 30 e.Result ......... Count = 30
Warum werden die Werte nicht in meinem DataGrid angezeigt?
Mein Raster ist ein einfaches Raster ohne Eigenschaften, daher sollte AutoGenerateColumns standardmäßig true sein. Nur um zu bestätigen, ich ging voran und setzen die folgenden: Autogeneratecolumns = „true“ /> Gemäß dem meine _Collection habe ich folgende Schnittstellen implementiert: IDataErrorInfo, Binding, IBindingListView. Von der Windows-Entwicklung kommend, wurden diese Objekte/Entitäten nicht serialisiert, also fange ich an zu denken, dass das das Problem ist, aber ich habe auch gelesen, dass mit .NET 3.5 SP1 Ihre benutzerdefinierten Klassen explizit mit Serialisierung und Ähnlichem markiert werden [DataMember] ist nicht mehr obligatorisch, korrekt? –