我最近刚刚开始开发一个在 listBox 中显示一堆 xml 数据的应用程序,但问题不是每个 xml 项目都有一个子值(在我的问题中,上传),所以它的 listBox 代码不应该显示.
例子:
<item>
<id>1</id>
<body>Some text</body>
<upload></upload>
<created>Some text</created>
</item>
我正在获取数据并以这种方式填充我的列表:
var data = from query in loadedData.Descendants("item")
select new droppedItem
{
Id = (int)query.Element("id"),
Body = (string)query.Element("body"),
Upload = (string)query.Element("upload"),
Created = (DateTime)ConvertFromUnixTimestamp((double)query.Element("created"))
};
userDrops.ItemsSource = data;
我的 xaml 看起来像:
<ListBox Margin="0,0,-12,0" Name="userDrops">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<RichTextBox>
<Paragraph>
<Run Text="{Binding Body}" FontSize="25" FontFamily="Segoe WP"></Run>
</Paragraph>
<Paragraph>
<Hyperlink NavigateUri="{Binding Upload}" TargetName="_blank" FontSize="25" FontFamily="Segoe WP">{Binding Upload}</Hyperlink>
</Paragraph>
<Paragraph>
<Run Text="{Binding Created}" FontFamily="Segoe WP SemiLight"></Run>
</Paragraph>
</RichTextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如果 xml 上传子项持有值,我想要做的只是显示持有上传信息的段落。否则,只需将其从列表框中删除。我不知道如何更改基本的 listBox 模板。
任何帮助都会很棒!