我正在写一个wpf程序,需要几个用户控件,看起来完全相同,但执行不同的功能。使用winForms,我可以扩展基本控件并添加功能,但据我所知,继承xaml文件是不可能的。有什么办法可以有不同的代码隐藏类,它们都使用相同的xaml文件进行控制?WPF:使用不同的代码隐藏相同的xaml文件
2
A
回答
0
您可能可以使用MVVM模式执行此操作,并创建可能实现相同接口的多个VM。然后XAML视图可以绑定到您的任何虚拟机,这取决于他们共享相同接口的事实。
在这种方法中你根本不使用代码。
0
一种方法是使用继承。一个非常简单的例子就是带有一个按钮的UserControl
,它应该在MessageBox
中显示不同的内容。
我们将有这样的事情:
public abstract class SomeUserControl : UserControl
{
//declared by XAML (can be made public with x:FieldModifier="public")
public Button MyButton;
//code-behind
public SomeUserControl() {
InitializeComponent();
}
}
public class MySpecialControl : SomeUserControl {
public MySpecialControl() {
MyButton.Click += (sender, e) => MessageBox.Show("Bla");
}
}
要使用MySpecialControl
,只是声明它在XAML像你和你以前的人做:
<myNamespace:MySpecialControl />
请注意,您也可以创建如果行为变化不是那么大的话,按钮点击的抽象方法。
0
随着的WinForms,我可以扩展基本控制
而且在WPF一个人不能做类似的?
使用依赖项属性创建自定义组合控件,该控件将设置控件的模式以适应其目标消费者的需求。
控件可以基于现有的控件或控件。
相关问题
- 1. 不同的HTML,相同的代码隐藏和相同的控件
- 2. XAML代码隐藏
- 3. WPF:在文件后面共享相同代码的多个XAML文件
- 4. 如何使用两个不同的代码文件使用相同的xaml文件?
- 5. silverlight和wpf应用程序使用相同的xaml文件
- 6. WPF的ItemsSource工作在代码隐藏而不是在XAML
- 7. 对不同文件夹中的不同域使用相同的代码
- 8. 的Silverlight XAML:引用代码隐藏类
- 9. WPF代码隐藏
- 10. 从代码隐藏到XAML
- 11. WPF XAML在同一个XAML文件
- 12. 代码隐藏找不到XAML
- 13. 使用不同的代码隐藏环境
- 14. WPF MVVM +用户控件代码隐藏
- 15. 使用相同的XSLT代码在同一个文件
- 16. WPF更改Xaml中基于代码隐藏属性的颜色
- 17. WPF如何让代码隐藏变量的XAML
- 18. 多次使用不同值的css代码不同的文件
- 19. 两个文件,完全相同的代码,不同的输出?
- 20. 动态加载外部xaml文件的代码隐藏?
- 21. 2个相同的控件在同一个Grid中? (WPF/XAML)
- 22. 从不同的XAML文件
- 23. WPF和Silverlight的相同代码基础?
- 24. WPF代码隐藏等效
- 25. WPF ItemsControl.ItemsTemplate代码隐藏
- 26. 相同的模板,不同的代码?
- 27. Xamarin表格 - 允许两页共享相同的代码隐藏
- 28. 如何通过WPF中的c#代码隐藏来编写逐字XAML代码?
- 29. 把复选框放在TreeView中使用代码隐藏不xaml
- 30. WPF代码隐藏DataBinding不工作
也许另一种方法会更好,在控件上创建可能的最小代码,并使用控件的行为创建不同的类,然后实例化表单,然后选择要使用的行为类。 – Gusman