我有一點O」麻煩XML綁定...問題的ListBox中使用的ItemTemplate作爲的ItemsSource
這裏是我的 「mappings.xml」 文件...
<?xml version="1.0" encoding="utf-8"?>
<mappings>
<mapping QID="info1">
<empty></empty>
</mapping>
<mapping QID="info2">
<empty></empty>
</mapping>
</mappings>
我的方法加載XML,並將其設置爲的ItemsSource爲ListBox:
(注:因爲它提供了一組XML.XMLElement
,而不是LINQ兼容XElement
我想工作我沒有在XAML中使用<XMLDataProvider>
Private Property myCollectionView as CollectionView
Private Property mappingsEnum as IEnumerable(Of System.Xml.Linq.XElement)
Sub LoadXML()
mappingsEnum = XDocument.Load("mappings.xml").Root.Elements
'using collection view so I can apply
'filtering to the list of <mapping> objects
myCollectionView = CollectionViewSource.GetDefaultView(mappingsEnum)
myListBox.ItemsSource = myCollectionView
End Sub
。
在XAML
<Grid>
<ListBox x:Name="myListBox" ScrollViewer.VerticalScrollBarVisibility="Auto" DockPanel.Dock="Bottom" ScrollViewer.CanContentScroll="True" VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.IsVirtualizing="True" SelectionMode="Extended">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<!-- WHY DOESN'T THIS WORK?? -->
<TextBlock Text="{Binding [email protected]}">
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
我試過設置的XPath來 「@ QID」 爲好,這沒有什麼區別。我檢查了myListBox.Items
收藏並確認這些物品實際上是XElement
看起來像<mapping QID="..."><empty/></mapping>
的物品,所以我認爲那裏沒有問題。
最終結果是一個用空對象填充的列表框。我可以對它們進行過濾,對它們進行排序,並向它們添加非綁定文本...但是對源對象的任何綁定都是未呈現的。
aaaaaaah。我一定看過那篇文章3次,從來沒有讀到底部。謝謝! – 2010-06-23 21:16:04
最終解決方案如下所示 –
2010-06-23 21:25:27