我有一个WPF客户端,WCF服务和Silverlight客户端(SL 4)的解决方案。
WPF客户端工作顺利,但Silverlight正在采取行动,我不知道如何处理它。
这些是我在Silverlight中的代码片段:
using sl_HFClient.svc;
namespace sl_HFClient
{
public partial class MainPage : UserControl
{
svc.IhfsvcClient dataSrv = new svc.IhfsvcClient();
ObservableCollection<svc.ReasonData> reasonData;
}
这是设置一切,接下来是对服务的调用:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
dataSrv.wcGetReasonsCompleted += ReasonsLoaded;
dataSrv.wcGetReasonsAsync();
}
最后,获取集合并将其绑定到组合框的代码:
private void ReasonsLoaded(object sender, wcGetReasonsCompletedEventArgs e)
{
reasonData = e.Result;
}
但是,这会返回以下错误:
无法将类型'sl_HFClient.svc.ReasonData []'隐式转换为'System.Collections.ObjectModel.ObservableCollection'
我是Silverlight和C#的新手,我之前和之前用SL4和VB.NET做过一些事情 通过将此代码与VB.NET项目进行比较,它似乎可以正常工作。
我做错了什么?
// JaggenSWE
答案 0 :(得分:0)
尝试以下方法:
private void ReasonsLoaded(object sender, wcGetReasonsCompletedEventArgs e)
{
reasonData = new ObservableCollection<ReasonData>(e.Result);
}
不完全确定这是否适用于Silverlight,但解决方案仍然是明确创建新的ObservableCollection<ReasonData>
而不是尝试从ReasonData[]
隐式投射。