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

4

1 回答 1

0

尝试以下操作:

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

不完全确定这是否适用于 Silverlight,但解决方案仍然是显式创建一个 newObservableCollection<ReasonData>而不是尝试从ReasonData[].

于 2012-07-26T23:10:20.620 回答