2010-02-06 76 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的命名空間錯誤。當我從頭開始一個新項目時,問題就解決了,這次項目名稱中沒有空格,名稱空間中沒有「_」。