源XML
<?xml version="1.0" ?>
<songs>
<song sname="song1.mp3"/>
<song sname="song2.mp3"/>
<song sname="song3.mp3"/>
<song sname="song4.mp3"/>
</songs>
XAML
<sdk:DataGrid
x:Name="DataGrid1"
Margin="0,60,0,0"
IsReadOnly="True"
AutoGenerateColumns="True"
VerticalScrollBarVisibility="Visible"
BorderBrush="DarkGreen"
BorderThickness="5"
CanUserSortColumns="True"
CanUserResizeColumns="False"
CanUserReorderColumns="False">
</sdk:DataGrid>
绑定代码
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;
}
当上面的代码运行时 - 数据网格为空。
调试时我可以看到对象歌曲有4个项目。
问题是它没有正确绑定 - 任何建议都表示赞赏。
答案 0 :(得分:1)
您尚未向我们展示Song
课程的来源。
我怀疑您已将name
属性声明为internal
。您需要public
才能在DataGrid中工作。
答案 1 :(得分:0)
替换您的代码部分
DataGrid1.ItemsSource = songs;
与
DataGrid1.ItemsSource = null;
DataGrid1.ItemsSource = songs;
虽然它看起来很愚蠢,但这对我有用