2012-08-15 36 views
0

你好,请帮我实现代码休耕的DataTemplate背后如何在代码中创建的DataTemplate身后的ListView GridView控件的树状

<TreeView Name="OrderTree" DataContext="{Binding ordersTree}" ItemsSource="{Binding}"> 
    <TreeView.Resources> 
     <HierarchicalDataTemplate 
       ... 
     </HierarchicalDataTemplate> 
     <DataTemplate DataType="{x:Type ordVM:OrderedDataCollectionVM}"> 
      <ListView Name="orderedListView" Margin="0,5,0,0" ItemsSource="{Binding GridData}"> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn DisplayMemberBinding="{Binding Number}" Width="20" /> 
         <GridViewColumn Header="{x:Static lang:ViewTextResource.product_name}" DisplayMemberBinding="{Binding Product.Name}" Width="150" /> 
         <GridViewColumn Header="{Binding GridHeaders.[0]}" CellTemplate="{StaticResource GridViewComboBox1}" Width="120"/> 
         <GridViewColumn Header="{Binding GridHeaders.[1]}" CellTemplate="{StaticResource GridViewComboBox2}" Width="120"/> 
        </GridView> 
       </ListView.View> 
      </ListView> 
     </DataTemplate> 
    </TreeView.Resources> 
</TreeView> 

我想后面的代码创建一个DataTemplate为我的TreeView控件与一个ListView其中有一个GridView的列数取决于我的数据。

回答

0

看一看this。看起来这是你想要的。

有趣的部分:

DataTemplate template = new DataTemplate(); 

template.VisualTree = new FrameworkElementFactory(typeof(Path)); 

template.VisualTree.SetBinding(Path.StrokeProperty, new Binding("Stroke")); 
template.VisualTree.SetBinding(Path.StrokeThicknessProperty, new Binding("StrokeThickness")); 
template.VisualTree.SetBinding(Path.FillProperty, new Binding("Interior")); 
template.VisualTree.SetBinding(Path.DataProperty, new Binding("Geometry")); 

只要编辑它以满足您的需求。

相关问题