将字符串中保存的XML加载到数据网格中

时间:2013-06-25 16:06:39

标签: c# xml datagrid

我从Web服务中提取XML。我已经将返回的数据加载到带有

的字符串中
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream =
new StreamReader(resp.GetResponseStream(), enc);
string Response = loResponseStream.ReadToEnd();

将此文件导入名为AccountList的DataGrid的最佳方法是什么。这个DG是WPF格式。

我正在使用Visual Studio Express 2012 for Desktop和c#。

提前致谢。

1 个答案:

答案 0 :(得分:0)

将XML解析为列表然后绑定到它。 举个例子,让我们假装你的XML是这样的(我知道这是一个简单的例子,如果你有一个复杂的xml结构,你需要做更多的工作来反序列化它(构建支持类,所以你可以然后添加到列表中):

<Items>
   <Item>a</Item>
   <Item>b</Item>
   <Item>c</Item>
</Items>

假设您有一个绑定到的属性:

//could be of some <T> but for simplicity..
ObservableCollection<string> MyItems {get;set;}

解析XML并将其签名到您的属性,让绑定执行其余操作:

var xDoc = XDocument.Parse(Response);
var list = doc.Root.Elements("Item").Select(element => element.Value).ToList();

MyItems.Clear();
foreach(var item in list)
    MyItems.Add(item);

好吧,XAML中的绑定应该是:

<DataGrid ItemsSource="{Binding MyItems}">