使用Silverlight客户端中的ObservableCollection <t>进行故障</t>

时间:2012-07-26 22:53:53

标签: c# wcf data-binding silverlight-4.0

我有一个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

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

private void ReasonsLoaded(object sender, wcGetReasonsCompletedEventArgs e)
{
    reasonData = new ObservableCollection<ReasonData>(e.Result);
}

不完全确定这是否适用于Silverlight,但解决方案仍然是明确创建新的ObservableCollection<ReasonData>而不是尝试从ReasonData[]隐式投射。