在silverlight 4中将自定义对象列表绑定到datagrid
源XML在silverlight 4中将自定义对象列表绑定到datagrid,silverlight,Silverlight,源XML <?xml version="1.0" ?> <songs> <song sname="song1.mp3"/> <song sname="song2.mp3"/> <song sname="song3.mp3"/> <song sname="song4.mp3"/> </songs> XAML 绑定代码 void ParseXMLFile(string dataInXmlF
<?xml version="1.0" ?>
<songs>
<song sname="song1.mp3"/>
<song sname="song2.mp3"/>
<song sname="song3.mp3"/>
<song sname="song4.mp3"/>
</songs>
XAML
绑定代码
void ParseXMLFile(string dataInXmlFile)
{
List<Song> songs = new List<Song>();
XDocument xmlDoc = XDocument.Parse(dataInXmlFile);
songs = (from r in xmlDoc.Descendants("song")
select new Song
{
name = (string)r.Attribute("sname").Value
}).ToList();
DataGrid1.ItemsSource = songs;
}
void ParseXMLFile(字符串dataInXmlFile)
{
列表歌曲=新列表();
XDocument xmlDoc=XDocument.Parse(dataInXmlFile);
songs=(来自xmlDoc.substands(“song”)中的r)
选择新歌
{
名称=(字符串)r.Attribute(“sname”).Value
}).ToList();
DataGrid1.ItemsSource=歌曲;
}
当上述代码运行时,datagrid为空
调试时,我可以看到对象歌曲有4项
问题是它没有正确绑定-任何建议都将受到赞赏。您还没有向我们展示您的
歌曲的来源
我怀疑您已将名称
属性声明为内部
。您需要是公共的
,它才能在数据网格中工作。替换您的代码部分
DataGrid1.ItemsSource = songs;
与
虽然看起来很愚蠢,但这对我来说很有用
DataGrid1.ItemsSource = songs;
DataGrid1.ItemsSource = null;
DataGrid1.ItemsSource = songs;