我的WCF服务之间出现转换问题,返回ObservableCollection并处理结果以填充ListView。
因此,在WCF和PCL项目中,我在Model文件夹中都有这个Temoignage.cs
public class Temoignage
{
public string Nom { get; set; }
public string Prenom { get; set; }
public int Note { get; set; }
public string Texte { get; set; }
}
WCF服务返回此
public ObservableCollection<Temoignage> GetTemoignage()
{
ObservableCollection<Temoignage> TemoignageList = new ObservableCollection<Temoignage>();
con.Open();
SqlCommand cmd = new SqlCommand("Select U.nom, U.Prenom, T.note, T.texte from dbo.Temoignages T inner join Users U on U.id = T.iduser where T.validation = 1;", con);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
while (reader.Read())
{
Temoignage temoignage = new Temoignage
{
Nom = reader.GetString(0),
Prenom = reader.GetString(1),
Note = reader.GetInt32(2),
Texte = reader.GetString(3)
};
TemoignageList.Add(temoignage);
}
return TemoignageList;
}
接收它的ViewModel
public ObservableCollection<Temoignage> TemoignagesList { get; set; }
....
public void Temoignages()
{
BasicHttpBinding binding = CreateBasicHttp();
this.client1 = new BienEtreServiceClient(binding, EndPoint);
this.instance = ((IBienEtreService)client1.InnerChannel);
client1.GetTemoignageCompleted += ClientOnGetTemoignageCompleted;
client1.GetTemoignageAsync();
}
public void ClientOnGetTemoignageCompleted(object sender, GetTemoignageCompletedEventArgs e)
{ // The problems starts here
ObservableCollection<Temoignage> TemTest = e.Result;
foreach (Temoignage item in TemTest)
{
TemoignagesList.Add(item);
}
}
我想我可以在ClientOnGetTemoignageCompleted中,只需从WCF获取ObservableCollection,并在我已经存在的TemoignagesList(绑定到XAML)中添加元素。 但不,不。即使模型在两个项目中都包含相同的元素。
e。我需要的结果包含元素,我只是不知道如何阅读它们。 equals to this when ClientOnGetTemoignageCompleted is executed
我错过了一个重点吗?
感谢您的帮助
答案 0 :(得分:0)
我想我自己找到了,使用我的wcf服务模型而不是客户端模型
//using BienEtre.Models;
using BienEtreWcfService;
现在可以使用并将元素添加到列表中。
public void ClientOnGetTemoignageCompleted(object sender, GetTemoignageCompletedEventArgs e)
{
foreach (Temoignage item in e.Result)
{
TemoignagesList.Add(item);
}
}
不确定我理解,但它确实有效!
我也使用List而不是ObservableCollection。