2009-03-17 1 views
0

私はリストボックスにxml構造体をバインドする作業をしています。私はこれを行うには非常に混乱しています。datatemplateをdatatemplateの中に入れたり、hirarchialdatatemplateを使用する必要があります。例えばxmlから、リストボックスに車のMake Nameを表示したいxmlファイル構造がリストボックスのデータバインディングツールチップ

<XmlDataProvider x:Key="src"> 
    <x:XData> 
     <Automobiles> 
      <Id>24</Id> 
      <Category>Cars</Category> 
      <MakeName>Audi</MakeName> 
      <Suvs> 
       <SuvId>Item1</SuvId> 
       <SuvId>Item1</SuvId> 
       <SuvId>Item1</SuvId> 
       <SuvId>Item1</SuvId> 
      </Suvs> 
      <IsPanel>1</IsPanel> 
      <IsFav>1</IsFav> 
     </Automobiles> 
    </x:XData> 
</XmlDataProvider> 

答えて

1

の下に与えられているとして、非常helpfull..myなりthis..please help..any入力を行うために、ツールチップまたはcontextmenu.Howとして対応するのSUV年代を示すために、私はあなたにXML形式を変更しました複数の自動車グループをサポート:

 <XmlDataProvider x:Key="src"> 
     <x:XData> 
      <Automobiles xmlns=""> 
       <Automobile> 
        <Id>24</Id> 
        <Category>Cars</Category> 
        <MakeName>Audi</MakeName> 
        <Suvs> 
         <SuvId>audiItem1</SuvId> 
         <SuvId>audiItem2</SuvId> 
         <SuvId>audiItem3</SuvId> 
         <SuvId>audiItem4</SuvId> 
        </Suvs> 
        <IsPanel>1</IsPanel> 
        <IsFav>1</IsFav> 
       </Automobile> 
       <Automobile> 
        <Id>24</Id> 
        <Category>Cars</Category> 
        <MakeName>BMW</MakeName> 
        <Suvs> 
         <SuvId>bmwItem1</SuvId> 
         <SuvId>bmwItem2</SuvId> 
         <SuvId>bmwItem3</SuvId> 
         <SuvId>bmwItem4</SuvId> 
        </Suvs> 
        <IsPanel>1</IsPanel> 
        <IsFav>1</IsFav> 
       </Automobile> 
      </Automobiles> 
     </x:XData> 
    </XmlDataProvider> 

私はコンテキストメニューとツールチップの両方を接続しました。 以下はバインディングの配線方法です:

<ItemsControl ItemsSource="{Binding Source={StaticResource src}, XPath=/Automobiles/Automobile}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <StackPanel Orientation="Horizontal"> 
         <StackPanel.ContextMenu> 
          <ContextMenu ItemsSource="{Binding XPath=Suvs}"> 
           <ContextMenu.ItemTemplate> 
            <DataTemplate> 
             <StackPanel Orientation="Horizontal"> 
              <TextBlock Text="SUV ID: " /> 
              <TextBlock Text="{Binding XPath=SuvId}" /> 
             </StackPanel> 
            </DataTemplate> 
           </ContextMenu.ItemTemplate> 
          </ContextMenu> 
         </StackPanel.ContextMenu> 
         <StackPanel.ToolTip> 
          <ListBox ItemsSource="{Binding XPath=Suvs/SuvId}"> 
           <ListBox.ItemTemplate> 
            <DataTemplate> 
             <StackPanel Orientation="Horizontal"> 
              <TextBlock Text="SUV ID: " /> 
              <TextBlock Text="{Binding InnerText, StringFormat={}}" /> 
             </StackPanel> 
            </DataTemplate> 
           </ListBox.ItemTemplate> 
          </ListBox> 
         </StackPanel.ToolTip> 
         <TextBlock Text="Make: " /> 
         <TextBlock Text="{Binding XPath=MakeName}" /> 
        </StackPanel> 
       </Grid> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
関連する問題