我试图以WPF用户控件如何继承WPF用户控件中提到的方式继承WPF中的用户控件。
namespace DMS.Presentation
{
/// <summary>
/// Interaction logic for WorkSpaceViewControl
/// </summary>
public abstract class WorkSpaceViewControl : UserControl
{
public WorkSpaceViewControl()
{
InitializeComponent();
}
private void InitializeComponent()
{
}
}
}
到目前为止,代码没有给出任何错误。但是当我在新的usercontrol中继承它时:
namespace DMS.Presentation
{
/// <summary>
/// Interaction logic for AnimalWorkSpaceView.xaml
/// </summary>
public partial class AnimalWorkSpaceView : WorkSpaceViewControl
{
public AnimalWorkSpaceView()
{
InitializeComponent();
}
}
}
它的XAML文件是:
//I have tried both WorkSpaceViewControl:UserControl and UserControl:WorkSpaceViewControl here
<UserControl:WorkSpaceViewControl x:Class="DMS.Presentation.WorkSpaceViewControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:DMS.Presentation"
xmlns:WorkSpaceViewControl="clr-namespace:DMS.Presentation"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
</UserControl:WorkSpaceViewControl>
我收到一条消息,指出不存在部分修饰符。存在另一个WorkSpaceViewControl的部分声明。那么我应该如何实施它,哪里出了问题呢?自从一月份以来,由于继承瓶颈,我的整个项目陷入了困境。帮助将不胜感激。
根据您引用的答案,派生的UserControl
XAML应该看起来像这样:
<local:WorkSpaceViewControl x:Class="DMS.Presentation.AnimalWorkSpaceView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:DMS.Presentation"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
</local:WorkSpaceViewControl>
您已经声明了两个不同的XML名称空间,local
并且WorkSpaceViewControl
都指向"clr-namespace:DMS.Presentation"
。您只需要其中之一(因此,我保留了local
它的惯用语),并且需要使用名称空间来限定类型名称WorkSpaceViewControl
。
因此,XAML声明开始于 <local:WorkSpaceViewControl ...
另外,x:Class
派生类的值必须是派生类,而不是基类。因此"DMS.Presentation.WorkSpaceViewControl"
,应将设置为而不是,"DMS.Presentation.AnimalWorkSpaceView"
如上所示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句