繁体   English   中英

在WPF中以编程方式将DataTemplateSelector与Treeview项绑定

[英]Binding DataTemplateSelector with treeview item programmatically in WPF

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

 public class MyTemplate : DataTemplateSelector
    {

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

尝试的方法:MyTemplate obj = new MyTemplate(viewModel)treeviewList.ItemTemplateSelector = obj;

它不起作用。

这不是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呢?

是一个很好的例子,如何使事物具有可绑定性和动态性

HierarchicalDataTemplate boundaryTemplate = new 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM