2010-02-06 51 views
0

我需要一个额外的依赖属性到控件,所以我重写它。我:如何将继承的控件添加到WPF中的数据模板?

namespace Custom_TextBlock_Sample 
{ 
    public class CustomLabel: Label 
    { 

    } 
} 

但我似乎无法将其添加到DataTemplate。下面的代码将无法编译:

... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ... 

    <DataTemplate x:Key="Test"> 
     <Grid> 
     <Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel> 
     </Grid> 
    </DataTemplate> 

但是插入我被覆盖的控制其他地方(比方说不是在DataTemplate中)..和编译工作没有问题。

以下工作:(我的控件不嵌套在日期模板中)。

<Grid> 
     <Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel> 
    </Grid> 

而且使用常规标签在DataTemplate中也适用:

<DataTemplate x:Key="Test"> 
    <Grid> 
    <Label/> 
    </Grid> 
</DataTemplate> 

什么问题可能是任何想法?我能否简单地在这样的庄园中不添加对数据模板的重写控件?这是Visual Studio 2007中的错误吗?

请注意,因为我的意图改为控制将很小,我只想覆盖“标签”,而不是将其包装在UserControl中。

谢谢

+0

这对我来说很好,没有什么看起来与你放在这里的代码错误。你得到的编译错误是什么?如果您从错误的Label类继承,可能会出现一个问题。检查CustomLabel文件中的使用语句(例如,System.Reflection.Emit中的标签是密封的,因此不会编译)。 – 2010-02-06 19:10:47

回答

0

好吧,算出来。这似乎是Visual Studio的命名空间错误。当我从头开始一个新项目时,问题就解决了,这次项目名称中没有空格,名称空间中没有“_”。