Wpf:继承代码隐藏代码

时间:2009-10-22 00:43:05

标签: wpf listview user-controls

我有几个类似的用户控件,它们显示各自不同数据实体的列表视图。 在这些控件的代码隐藏文件中,存在相当多的常见业务逻辑。

如何将这些常用方法组合在一个“超类”中,就像在普通的非wpf情况下一样(重用任何xaml部分是不必要的)? 创建控件继承的超级控件(仅包含框架xaml文件)会导致解析器错误:

Partial declarations of DERIVED-CLASS must not specify different base classes

在派生的用户控件中。

非常感谢你。

3 个答案:

答案 0 :(得分:1)

听起来像DataTemplating就是你想要的。您可以设置包含所有业务逻辑的常规自定义列表视图,然后在XAML中使用数据模板来根据其包含的对象类型自定义视图。

这是一个很棒的链接,可以帮助您入门:http://msdn.microsoft.com/en-us/library/ms742521.aspx

答案 1 :(得分:1)

您是如何在派生用户控件中使用“超级控件”的?只需更改基类?
如果是这样,您需要更改XAML文件的根元素(即指定了x:Class的文本)以匹配。

答案 2 :(得分:1)

我最好的建议是制作无视控件(没有XAML关联的控件)。这些你可以继承并最终更强大,因为你可以制作的样式将更灵活(即按钮你可以设置成任何东西。按钮是一个无形的控件)。控件的默认样式可以放在Themes \ generic.xaml中,您可以为子类控件创建其他默认样式。这些样式也可以包含其他资源序列中的副本。

我介绍了here on my blog张贴的无形控件,但它面向银光。它在WPF中的语法略有不同,但是同样的想法。