2011-08-30 17 views
1

我試圖使用從UserControl派生的C#類作爲一些xaml頁面的佈局根的基類,因此我可以共享一些常用功能。即在支持類是這樣的:使用UserControl的派生類 - 如何消除xaml編輯器中的藍線?

public class BaseView : UserControl 
{ 
    // Some virtual functions I want in common ... 
} 

public class MyView : BaseView 
{ 
    // Overidden functions ... 
} 

XAML文件然後引用類,如:

<jt:BaseView x:Class="ns.MyView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:jt="clr-namespace:ns" 
    ...> 
</jt:BaseView> 

這似乎運行時工作,但在XAML編輯器,代碼都帶下劃線的藍色波浪行,並帶有類似「無法創建BaseView實例」的飛行消息。

如果我不這樣做,並在xmal中使用UserControl,我會收到錯誤,因爲從xaml生成的部分類具有UserControl基類,而不是我的自定義基類。

如何讓編輯知道我的自定義基類(即擺脫藍色下劃線)?

+0

你在BaseView構造函數中有什麼? – AnthonyWJones

回答

1

設計時間「無法創建實例...」類錯誤的最常見原因是該元素的構造函數做了一些沒有意義或者在設計時不可用的東西。

+0

謝謝!就是這樣。基類構造函數不應該期望能夠引用App對象。顯然,派生類構造函數可以這樣做,所以將公共代碼移動到由派生類構造函數調用的基類函數似乎可行。 –

相關問題