我现在正在做一个silverlight应用程序,语言是C#,我已成功从Web服务引用中检索数据,并且能够在网格视图中的mainpage.xaml上显示它。但是,有什么方法可以将我的数据存储为数组/ arraylist,这样我就不希望它只显示一列数据,而不是在网格视图中显示所有列数据。有谁可以帮我解决这个问题?以下是我目前的基本代码
[OperationContract]
public List<location> Getlocations()
{
DataClassesDBDataContext db = new DataClassesDBDataContext();
var mlocations = from location in db.locations
select location;
return mlocations.ToList();
}
答案 0 :(得分:1)
如果您使用的是wcf服务,则可以更改返回类型。
在添加服务参考中,单击&#34;高级&#34;底部的按钮。 将打开一个新的模式对话框&#34;服务参考设置&#34;在那里你可以选择&#34;收集类型&#34;作为Arraylist / Array / List。
现在每当您从Web方法返回List时,您将收到您在&#34; Collection Type&#34;中选择的那个。(这仅在wcf Web服务(.svc)中可用而不是(.asmx)
如果这不是一个选项,那么您只需将列表更改为数组。
var list = new List<string>{"1","2"}
string[] arrayVal =" list.ToArray();
由于问题不是很明确,并且您说您只想在网格中显示一列,您只需返回一个列数据,同时从Web方法返回,如
[OperationContract]
public List<location> Getlocations()
{
var db = new DataClassesDBDataContext();
var mlocations = (from x in db.locations
select new location
{
locationColName = x.something
}).ToList();
return mlocations;
}
答案 1 :(得分:0)
列表中使用的ToArray()方法应该可以解决问题。这里显示了一个简单的一般示例:
List<string> l = new List<string>();
l.Add("somedata");
. . .
string[] s = l.ToArray();