[英]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.