我必须在silverlight中绑定datagrid。
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来绑定datagrid。我应该如何将其转换为IEnumerable?
答案 0 :(得分:5)
e.Result
包含DoWork
操作的结果;如果服务操作的返回类型是可枚举的,那么e.Result
也将是。因此,更新服务操作以返回可枚举的内容,然后更新服务引用。
答案 1 :(得分:0)
有时,将单个对象用作期望IEnumerable作为数据源的控件的数据源是有用的。我使用一个小扩展方法来处理这种情况:
public static class ObjectExtensions
{
public static IEnumerable<T> WrapInEnumerable<T>(this T t)
{
yield return t;
}
}
现在,如果您从DoWork
方法返回了一个对象,则可以使用以下命令进行数据绑定:
myControl.DataSource = DoWork().WrapInEnumerable();