我有一个自定义的“页面”列表,每个页面代表不同的UI视图。它们有一些简单的属性,如字符串标题和图标,但它们也有许多复杂的属性,包括要插入主工具栏的控件、主内容区域、自定义状态栏面板等。页面类型派生自
问题出现在我尝试快速列出所有页面时。我有一个
有没有人知道一种方法,可以使DataTemplate适用于派生自FrameworkElement类型的类型,或者在由非FrameworkElement根据的XAML文件中使数据绑定工作?
FrameworkElement
,以便在每个页面的XAML中正常工作。到目前为止,我描述的一切都很好。问题出现在我尝试快速列出所有页面时。我有一个
ItemsControl
,它绑定到活动页面的列表,并且一个DataTemplate
分配给一个ItemTemplate
,它只由一个标签组成,绑定到页面的Title
属性(如上所述,它只是一个普通的字符串)。然而,当我运行它时,列表中没有显示任何内容,并且我在错误输出中得到了以下信息:
如果我将基础类型更改为除System.Windows.Data Error: 25 : ItemTemplate and ItemTemplateSelector are not valid for item.; Type='WelcomePage'
FrameworkElement
之外的任何类型,则模板有效,但每个页面内的数据绑定会严重失效(通过ElementName
绑定项失败,尽管涉及的两个控件都是共同的FrameworkElement
的子控件,这在页面的XAML中定义)。有没有人知道一种方法,可以使DataTemplate适用于派生自FrameworkElement类型的类型,或者在由非FrameworkElement根据的XAML文件中使数据绑定工作?