WPF: adatok lekérése WCF-en keresztűl.
2012-01-12T14:46:32+01:00
2012-01-12T16:04:14+01:00
2022-07-19T13:10:26+02:00
[OP]Destroy-man
Sziasztok!

Hogyan tudok WCF kapcsolatot teremteni egy WPF-es programból? Amivel én próbálkoztam, az sajnos nem működik. A kód lefordul, hiba nincsen benne, de nem ad vissza értéket, a datagridem üresen áll.
A feladat követelménye, hogy nem használhatók adatbázist, így a az adatokat a programba kell beégetni, jelen esetben én ezt a service szolgáltatásba tettem meg.

Az általam írt kód:
WCF projekt
szemely.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; namespace KolcsonzoService { [DataContract] public class szemely { [DataMember] public string nev; [DataMember] public string cim; [DataMember] public string tel; } }

Service.cs
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; namespace KolcsonzoService { // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together. public class Service : IService { List<szemely> adatok = new List<szemely>(); public List<szemely> GetSzemely() { adatok.Add(new szemely() { nev = "Erős István", cim = "Győr, Szent István út 27.", tel="30/333-6666" }); return adatok; } } }

IService.cs
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; namespace KolcsonzoService { // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. [ServiceContract] public interface IService { [OperationContract] List<szemely> GetSzemely(); } }

WPF projekt:
XAML fájl ide vonatkozó része:
<DataGrid x:Name="testDB"> <DataGrid.Columns> <DataGridTextColumn Header="Név:" Binding="{Binding nev}"/> <DataGridTextColumn Header="Cím:" Binding="{Binding cim}"/> <DataGridTextColumn Header="Telefon:" Binding="{Binding tel}"/> </DataGrid.Columns> </DataGrid>

Az adatcsatolás pedig codebehindból történik:
InitializeComponent(); ServiceClient client = new ServiceClient(); testDB.DataContext = client.GetSzemely(); client.Close();

Mi lehet a hiba, vagy mi hiányzik a kódból? Nagyon remélem, hogy sikerül működésre bírni.
Mutasd a teljes hozzászólást!
Próbáld így:

testDB.ItemsSource = client.GetSzemely();
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd