这是简化的 XML:
<Product> <Name>Red Chair</Name> <Price>29.5</Price> </Product>
这是简化的 XAML,其中列表框将显示每个条目的名称和价格:
<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text={Binding XPath=./Name} />
<TextBlock Text={Binding XPath=./Price} />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如何在我的 C# 代码中执行 LINQ 查询,以便我可以:
var products = from ... /* I need code between here and next statement */
listBox1.DataContext = products;
并且列表框填充了我的 XML 文件中的条目?谢谢。
最佳答案
你可以试试:
var products = doc.Descendants("Product")
.Select(x => new { Name = (string) x.Element("Name"),
Price = (decimal) x.Element("Price") });
目前还不清楚这是否是您想要的,但它可能是……然后您会想要将绑定(bind)更改为如下内容:
<TextBlock Text={Binding Name} />
<TextBlock Text={Binding Price} />
您可能还想调用 ToList
来实现一次查询 - 我对 XAML 绑定(bind)的了解还不够,无法知道它是否适合您进行缓存。 (我想是的,但是……)
关于c# - LINQ XML 查询 : How do I perform query for binding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744022/