我想拥有自己的基础TabItem类,并使用从其派生的其他类。
我在MyNs命名空间中定义基类,如下所示:
public class MyCustomTab : TabItem
{
static MyCustomTab()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomTab), new FrameworkPropertyMetadata(typeof(TabItem)));
}
}
这就是我为继承自它的类所做的工作:
MyNs命名空间中的代码隐藏:
public partial class ActualTab : MyCustomTab
{
public ActualTab()
{
InitializeComponent();
}
}
XAML:
<MyCustomTab x:Class="MyNs.ActualTab"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
</Grid>
</MyCustomTab>
我得到的错误是“标签'MyCustomTab'在XML名称空间'http://schemas.microsoft.com/winfx/2006/xaml/presentation'中不存在”。如果我在XAML中使用
TabItem
标记,则该错误表明无法定义为不同的基类。如何解决这个问题?
最佳答案
好吧,我很傻,应该
<MyNs:MyCustomTab x:Class="MyNs.ActualTab"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:MyNs="clr-namespace:MyNs">
<Grid>
</Grid>
</MyNs:MyCustomTab>