0

少し困っています...

これが私の「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として設定する私のメソッド:(注:使用したいLINQ-Compatibleではなく、のセットを提供するため、XAML
では使用しませんでした。<XMLDataProvider>XML.XMLElementXElement

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 XPath=@QID}">
                            </Grid>
                        </DataTemplate>
         </ListBox.ItemTemplate>
</ListBox>
</Grid>

XPathも「。@QID」に設定してみましたが、違いはありませんでした。myListBox.Itemsコレクションを調べて、実際XElementにそのようなオブジェクトであることが確認された<mapping QID="..."><empty/></mapping> ので、問題はないと思います。

最終結果は、空のオブジェクトで埋められるリストボックスです。それらをフィルタリングし、並べ替えて、バインドされていないテキストを追加することはできますが、ソースオブジェクトへのバインドはレンダリングされません。

4

1 に答える 1

1

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.xpath.aspx

そこからの引用:

LINQtoXMLオブジェクトXDocumentおよびXElementはXPathを使用しません。詳細については、「方法:XMLクエリ結果のXDocument、XElement、またはLINQにバインドする」を参照してください。

そして、XElementにバインドする方法の例

http://msdn.microsoft.com/en-us/library/cc165615.aspx

于 2010-06-23T21:02:44.497 に答える