2011-09-16 11 views
1

私はいくつかの項目を持つViewport3Dを持っており、データにバインドできるコレクションからの項目を追加したいと思います。そのようなことは、このようなコードを可能にすること、あります:ジョシュ・スミスはイメージのリストをホストするためにviewport3dを使用Viewport3Dで使用するItemsControlのようなものはありますか?

<Viewport3D> 
    <Viewport3D.Camera...> 
    <ModelVisual3D> 
     <ModelVisual3D.Content> 
      <AmbientLight Color="White"/> 
     </ModelVisual3D.Content> 
    </ModelVisual3D> 

    <ItemsControl ItemsSource="{Binding MyCollection}"> 
     <ItemsControl.ItemTemplate> 
       <DataTemplate ...> 
        <ModelVisual3D ....> 
       </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Viewport3D> 

答えて

0

私の解決策は、標準のitemscontrolを使用し、Viewport3Dコントロールを重ねて配置することでした。これは、深さの順序を尊重しませんが、私の場合、私はItemsControlに内の項目は、とにかく残りの要素の前になりたかった:

<ItemsControl ItemsSource="{Binding XXX}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <Grid/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate DataType="{x:Type XXX}"> 
       <Viewport3D Camera="{Binding Camera, ElementName=MainViewport}"> 
        <ModelVisual3D> 
         <ModelVisual3D.Content> 
          <AmbientLight Color="White"/> 
         </ModelVisual3D.Content> 
        </ModelVisual3D> 

        <ModelVisual3D> 
         ...my template here... 
        </ModelVisual3D> 
       </Viewport3D> 

      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
関連する問題