相关疑难解决方法(0)

当从DataTemplateSelector显式返回DataTemplate时,为什么DataTemplate不能绑定到接口?

我已经创建了一个DataTemplateSelector,它使用已知接口的集合进行初始化.如果传入选择器的项目实现其中一个接口,则返回关联的数据模板.

首先,这是有问题的ICategory接口......

public interface ICategory
{
    ICategory ParentCategory { get; set; }
    string    Name           { get; set; }

    ICategoryCollection Subcategories { get; }
}
Run Code Online (Sandbox Code Playgroud)

这是基于基类或接口而不仅仅是特定具体类匹配的DataTemplateSelector ...

[ContentProperty("BaseTypeMappings")]
public class SubclassedTypeTemplateSelector : DataTemplateSelector
{
    private delegate object TryFindResourceDelegate(object key);

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var frameworkElement = container as FrameworkElement;

        foreach(var baseTypeMapping in BaseTypeMappings)
        {
            // Check if the item is an instance of, a subclass of,
            // or implements the interface specified in BaseType
            if(baseTypeMapping.BaseType.IsInstanceOfType(item))
            {
                // …
Run Code Online (Sandbox Code Playgroud)

c# wpf datatemplate hierarchicaldatatemplate datatemplateselector

7
推荐指数
1
解决办法
761
查看次数