在DataType属性中找不到子类的类型
本文关键字:子类 类型 找不到 DataType 属性 | 更新日期: 2023-09-27 18:03:20
在我的xaml文件中,我在wpf项目中使用绑定到类型
<TreeView>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type spec:SectionContainer.SectionNode}">
...
式中,SectionContainer.SectionNode
为偏类SectionContainer
的子类,spec
为当前集合的命名空间,在Window
标签中定义为:
xmlns:spec="clr-namespace:Proj.Sections".
在定义spec
时没有错误,但是在DataType属性中使用SectionNode类型会产生:
Cannot find the type 'spec:SectionContainer.SectionNode'. Note that type names are case sensitive.
我明白这个错误的意思,但是没有理由让它出现在那里。可能是问题在使用部分类或在其他什么?所有类都定义为public
。我的课程:
namespace Proj.Sections
{
[Serializable]
public partial class SectionContainer : INotifyPropertyChanged
{
[Serializable]
public class SectionNode : SectionNode
{
}
}
}
啊…现在你已经添加了你的类定义(请总是显示你的相关代码当你问你的问题),我想我可以看到你的问题。我有一个类似的情况,Serialization
是问题。由于某些未知的原因,它不能很好地与INotifyPropertyChanged
接口一起工作。
为了解决这个问题,我的WPF项目都有单独的SerializableXXX
类,用于任何需要序列化的对象,而在UI中使用的类和实现INotifyPropertyChanged
接口没有序列化。作为一个简单的测试,尝试删除SerializableAttribute
,看看它是否有任何不同。
将SectionNode
子类移出SectionContainer
可以解决这个问题。在此之前,我还尝试在单独的<HierarchicalDataTemplate.DataType/>
标记中定义DataType
值,但它导致了另一个错误消息。因此,其他的想法如何使用子类,同时没有错误是受欢迎的。