Silverlight 4,返回用户类列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Silverlight 4,返回用户类列表相关的知识,希望对你有一定的参考价值。

历史:我有一个php的小网站,我想为它做一个更好的前端。环顾四周,花了一个小时左右的每个FlashBuilder等,我发现Silverlight 4是最快的,但我遇到了一个问题。

我有一个简单的课程

 public partial class data
        {
            public String Software;
            public int OK;
            public int warn;
            public int falsepos;
            public int failed;
            public int total;
        }

然后我使用对我的服务的调用加载类,如下所示:

    [OperationContract]
    public List<data> GetSum(){
     String sql="SELECT Software, OK, warn, falsepos, failed from sum";
        List<data> res = new List<data>();
            if (!DBConnect()) { throw new Exception("Unable to contact Database"); }

            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = new SqlCommand(sql, _sqlConnection);
            DataSet ds = new DataSet();
            da.Fill(ds);
            _sqlConnection.Close();
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                data d = new data();
                d.Software = dr["software"].ToString();
                d.OK  = Int16.Parse(dr["OK"].ToString());
                d.warn  = Int16.Parse(dr["Warning"].ToString());
                d.falsepos = Int16.Parse(dr["False Positive"].ToString());
                d.failed = Int16.Parse(dr["Failed"].ToString());
                d.total = d.OK+d.warn+d.falsepos+d.failed;
                res.Add(d);
            }
            return res;}

现在,编译很好,除了,当我添加foreach时,它开始分崩离析,

private void Summary(object Sender, ServiceProxy.GetSumCompletedEventArgs e)
{
    foreach (data d in e.Result)
    {

    }
}

它说,当我去解析清单的那一刻

Error    2    foreach statement cannot operate on variables of type 'SilverlightApplication1.ServiceProxy.GetSumResponse' because 'SilverlightApplication1.ServiceProxy.GetSumResponse' does not contain a public definition for 'GetEnumerator'    C:UsersmeDocumentsVisual Studio 2010ProjectsSilverlightApplication1SilverlightApplication1Page1.xaml.cs    52    13    SilverlightApplication1

现在,我环顾四周,阅读并看到了很多东西,现在,这是一个非常相似的函数,只返回一个服务器名列表,有效。因为我猜它是String类型,但我知道它没有生成如何读取列表中的单个项目,但这是困扰我。我只想返回一个简单的东西列表。有人可以指点我正确的方向吗?

我确信这很简单。就像一个属性,或者其他东西,但这似乎很愚蠢,我找不到答案,善待,我只看了几个小时的Silverlight。

答案

遵循this answer的路线

你可以试试

[DataContract]
public class DataResult
{
    [DataMember]
    public List<data> DataList{ get; set; }

    DataResult(List<data> dataList)
    { 
        DataList = dataList;
    }

}

[OperationContract]
public List<data> GetSum(){
    ...
    ...

    return DataResult(res);
}



private void Summary(object Sender, ServiceProxy.GetSumCompletedEventArgs e)
{
    foreach (data d in e.Result.DataList)
    {

    }          
}

并且可以将列表显示到网格中

DataGrid1.ItemsSource = e.Result.DataList;

如果你的列配置正确或设置为自动生成,那应该这样做。

以上是关于Silverlight 4,返回用户类列表的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 4:如何在键盘焦点上显示工具提示(修订)

Android,从其他片段返回的空列表视图

为啥此代码片段返回意外结果?

如何从片段内的列表视图打开链接网址?

使用viewpager的片段事务返回空白视图

安卓。片段 getActivity() 有时返回 null