根据类型选择数据模板
我已经宣布了以下类型:
public interface ITest { } public class ClassOne : ITest { } public class ClassTwo : ITest { }
在我的viewmodel中,我正在声明并初始化以下集合:
public class ViewModel { public ObservableCollection Coll { get; set; } = new ObservableCollection { new ClassOne(), new ClassTwo() }; }
在我看来,我正在声明以下ItemsControl
我希望看到的是一个红色方块,后面是一个蓝色方块,而我所看到的是以下内容:
我究竟做错了什么?
您的问题可能是由XAML的辛苦工作引起的。 具体来说,您需要将Type
传递给DataType
,但是您传递的是具有该类型名称的字符串。
使用x:Type
来装饰DataType
的值,如下所示:
您也可以使用DataTemplateSelector。 MSDN参考 和Stackoverflow参考。