我的应用程序中有一个自定义“页面”列表。每个页面代表一个不同的 UI 视图。它们有一些简单的属性,如字符串标题和图标,但它们也有许多复杂的属性,包括插入主工具栏的控件、主要内容区域、自定义状态栏面板等。页面类型源自FrameworkElement
以便数据绑定在每个页面的 XAML 中正常工作。到目前为止,我所描述的一切都很好。
当我试图快速抛出所有页面的列表时,问题就来了。我有一个ItemsControl
绑定到活动页面列表的一个,一个DataTemplate
分配给一个ItemTemplate
仅由绑定到页面Title
属性的标签组成的一个(如前所述,它只是一个普通字符串)。但是,当我运行它时,列表中没有显示任何内容,并且我在错误输出中得到了这个:
System.Windows.Data 错误:25:ItemTemplate 和 ItemTemplateSelector 对项目无效。;类型='欢迎页面'
如果我将基本类型更改为除FrameworkElement
模板工作之外的任何内容,但每个页面中的数据绑定会严重崩溃(通过绑定到项目ElementName
失败,尽管所涉及的两个控件都是 common 的子级FrameworkElement
,这是在页面的 XAML 中定义的)。
任何人都知道获取 DataTemplate 以应用于 FrameworkElement 派生类型或获取数据绑定以在以非 FrameworkElement 为根的 XAML 文件中工作的方法吗?