如何将 WCF 结果 'e.Result' 转换为 IEnumerable

31 浏览
0 Comments

如何将 WCF 结果 'e.Result' 转换为 IEnumerable

我需要在Silverlight中绑定数据网格。

void proxy_DoWorkCompleted(object sender, ServiceReference1.DoWorkCompletedEventArgs e)
    {
        try
        {
            //var v = e.Result as Queryable;
            //PagedCollectionView pagesEmployees = new PagedCollectionView(v);
            //dpGridPager.Source = pagesEmployees;
            dataGrid1.ItemsSource = e.Result;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.InnerException.ToString());
        }
    }

现在这个 e.Result 应该是 IEnumerable 类型才能绑定数据网格。我该如何将它转换为 IEnumerable 类型?

admin 更改状态以发布 2023年5月25日
0
0 Comments

有时候,将单个对象作为数据源传递给一个需要IEnumerable数据源的控件很有用。我使用一个小的扩展方法来处理这种情况:

public static class ObjectExtensions
{
    public static IEnumerable WrapInEnumerable(this T t)
    {
        yield return t;
    }
}

现在,如果你从你的DoWork方法中返回一个对象,你可以使用以下方式进行数据绑定:

myControl.DataSource = DoWork().WrapInEnumerable();

0
0 Comments

e.Result包含了DoWork操作的结果;如果服务操作的返回类型是可枚举的,则e.Result也是可枚举的。因此,请更新服务操作以返回可枚举的内容,然后更新服务引用。

0