2016-07-25 75 views
0

我无法以编程方式将数据模板选择器与树视图项目绑定。 这里我创建了参数化数据模板选择器,这不能与XAML中的树视图绑定。 下面是数据模板选择器代码以编程方式在WPF中绑定DataTemplateSelector与treeview项目

public class MyTemplate : DataTemplateSelector 
    { 

     private IVM_ManyToOneMapping _viewModel; 
     public MyTemplate(IVM_ManyToOneMapping viewModel) 
     { 
      _viewModel = viewModel; 
     } 
    } 

尝试的方法: MyTemplate的OBJ =新MyTemplate的(视图模型) treeviewList.ItemTemplateSelector = OBJ;

它不工作。

+0

请你能展示一些代码 – suulisin

回答

0

这不是如何DataTemplateSelector作品:

这里的例如

public class TemplateSelector : DataTemplateSelector 
{ 

    //You override this function to select your data template based in the given item 
    public override System.Windows.DataTemplate SelectTemplate(object item, 
        System.Windows.DependencyObject container) 
    { 
     if(item is MyViewModel1) 
      return DataTemplate1; 
     if(item is MyViewModel2) 
      return DataTemplate2; 
     return base.SelectTemplate(item, container); 
    } 
} 

但如果你已经在后面的代码,为什么你会需要一个DataTemplateSelector

This是一个很好的例子,如何得到的东西绑定的,更有活力

+0

感谢您的回复。我想从代码(不通过XAML)绑定树视图的数据模板选择器。我能够实现它谢谢.. :) –

0

HierarchicalDataTemplate hierarchicalTemplate =新HierarchicalDataTemplate();

 // create TreeViewItem. 
     FrameworkElementFactory treeViewItem = new FrameworkElementFactory(typeof(TreeViewItem)); 
     treeViewItem.SetBinding(TreeViewItem.ItemsSourceProperty, new Binding("GroupList")); 
     treeViewItem.SetValue(TreeViewItem.ItemTemplateSelectorProperty, 
           new TreeViewItemTemplateSelector(_viewModel)); 

     hierarchicalTemplate.VisualTree = treeViewItem; 

treeviewList.itemTemplate = hierarchicalTemplate;