如何在WPF / XAML中反映类的继承?

我。

(首先:我有一定的编程经验,但是是XAML / WPF / StackOverflow的初学者。因此,请原谅任何“愚蠢”的内容,并询问是否有任何不清楚的内容,或者您​​需要其他信息。)

介绍:我有一个基类Item的一些性质(如TitleNotes等)。从我有一些派生类等ContactItemMediaItem等与作为基类进一步专门项目类型的附加的特性(例如ImageItemMusicItemVideoItem其中衍生自MediaItem;PersonInstitution衍生自ContactItem)。

在WPF中,我需要一个可以同时显示多种项目类型的页面。我目前ItemsPanel为此使用,并开始为每种项目类型指定数据模板-数量很多(超过50种)。

问题:我现在想要的是项目控件的某种“继承性”(例如,使用a作为“基础” UserControlContentPresenter并为派生类/控件模板的其他属性添加其他控件)。

在WPF / XAML中处理此问题而不必从基类中复制/粘贴数据模板中派生项类型的控件的最佳方法是什么?

朝着正确方向的任何想法或暗示都会很棒。如果您需要一些代码或其他信息,请告诉我。

谢里登

可以简单地将每个基类嵌套UserControl在更多派生的UserControls中,但是您可能会发现这可能很快变得难以管理。另一种方法是使用ContentControl元素来显示DataTemplates中来自其他DataTemplates的较大部分,如下所示:

<DataTemplate x:Key="NameTemplate" DataType="{x:Type ViewModels:UserViewModel}">
    <TextBlock Text="{Binding Name}" />
</DataTemplate>
...
<DataTemplate DataType="{x:Type ViewModels:UserDerivedViewModel}">
    <ContentControl Content="{Binding}" 
        ContentTemplate="{StaticResource NameTemplate}" />
    <TextBlock Text="{Binding Age}" />
</DataTemplate>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF / XAML中反映类的继承?

来自分类Dev

如何使用从.xaml中的TabControl继承的类?

来自分类Dev

如何在scala中反映枚举类?

来自分类Dev

如何在WPF中扩展Ellipse类

来自分类Dev

如何在WPF中的一个XAML文件中添加多个类文件

来自分类Dev

如何在WPF中绑定

来自分类Dev

如何在WPF中的XAML中制作加号?

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

DevExpress WPF GridControl:如何在XAML中设置默认排序

来自分类Dev

如何在WPF XAML中填充饼形区域

来自分类Dev

如何在WPF XAML中更改按钮背景?

来自分类Dev

如何在WPF XAML文件中添加多行注释?

来自分类Dev

如何在XAML / WPF中设置鼠标光标?

来自分类Dev

如何在XAML,WPF中四舍五入?

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

如何在WPF中定义/声明xaml命名空间?

来自分类Dev

如何在XAML / WPF中设置鼠标光标?

来自分类Dev

如何在 WPF XAML 中设置组件 UserControls 的属性

来自分类Dev

如何在 WPF/XAML 中使用 Nuget 包中的图标?

来自分类Dev

如何在继承的类中自动声明类实例变量

来自分类Dev

如何继承CSS中的类?

来自分类Dev

如何在WPF C#中绑定到类本身

来自分类Dev

如何在WPF资源中创建对公共类的引用?

来自分类Dev

如何在WPF中叠加图像?

来自分类Dev

如何在WPF中闪烁标签文本

来自分类Dev

如何在WPF中的窗口之间导航?

来自分类Dev

如何在WPF图像中显示位图

来自分类Dev

如何在WPF中覆盖WindowStyle

来自分类Dev

如何在WPF中填充时区