我像往常一样构建了一个用户控件,它由XAML部分和代码隐藏部分组成.现在,我需要创建另一个用户控件,它共享前者的一些功能,但它们具有不同的外观,并且可能在代码隐藏中具有其他功能.
我的第一个想法是创建一个接口来收集两种控件的常用功能.这是正确的方法吗?我将如何管理我应该拥有的不同XAML部件?欢迎任何建议.
我想补充一点其他的贡献,我认为可能对遇到同样情况的其他人有用.
另一种可能的解决方案,在我看来,如果您要创建的控件不是特别复杂,则适合创建一个包含您想要共享的常用功能的基本用户控件:这种控件将完全用C#编写.实际上,这允许在由XAML和后面的代码组成的用户控件中继承.在继承控件的XAML中,而不是具有
<UserControl> ... </UserControl>
Run Code Online (Sandbox Code Playgroud)
你将会有
<MyProject: MyBaseControl x:Class="MyProject.MyExtendedControl"> ... </MyProject: MyBaseControl>
Run Code Online (Sandbox Code Playgroud)
然后在后面的代码中你还需要指定以下内容:
class MyExtendedControl : MyBaseControl
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.