2016-07-25 58 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;