2011-01-26 23 views
13

爲什麼我有一個用戶控件此錯誤消息:WPF錯誤信息:部分申報不能指定不同的基類

MyNamespace.MyUserControl局部聲明不得 指定不同的基類

僅僅因爲我從另一個名稱空間中創建的UserControl類繼承而這個其他名稱空間在XAML中被引用爲

xmlns:my="clr-namespace:ReferedNamespace;assembly=ReferedNamespace" 
+1

你可以發佈更多的xaml和你的電話聲明 – baalazamon 2011-01-26 18:20:28

+0

請注意,`彙編`和`;` – 2013-01-11 19:15:22

回答

25

這裏很少介紹,但這通常發生在後面的代碼和xaml文件不從相同的基類繼承時。

由於我們沒有關於您的問題的所有細節,我會創建一個會導致相同異常的情況, 這可能會幫助您瞭解您的問題。

作爲一個例子,只是使用Visual Studio創建新的WPF應用程序, 的XAML可能是這個樣子:

<Window x:Class="WpfApplication1.MainWindow" .....> 

後面的代碼將隨後包含這樣的事情:

public partial class MainWindow : Window 
{ 
    //Code here 
} 

請注意這裏的「部分」修飾符。這意味着此類(MainWindow)可能不會在單個文件中定義,而是分佈在多個文件中,即 (在本例中爲XAML(.xaml.cs)和CS(.cs)文件)。

現在添加一個新的UserControl到解決方案。它將被命名爲UserControl1。

無需對XAML任何改變,對於主窗口後面更改代碼:

public partial class MainWindow : UserControl1 
{ 
    //Code here 
} 

現在你會得到你所質疑的異常。

在代碼中尋找類似的東西,如果仍然找不到解決方案,請提供更多代碼。

+0

之間沒有空格嗨,這確實與繼承有關。我已經解決了這個問題。 – user310291 2011-01-28 00:32:41

15

期待着您的.cs和的.xaml文件都在這個部分

  • 中的.xaml文件:

    <Window x:Class="BUSsAsDesign.GUI.IGPopUP" > ...... </Window> 
    
  • 。CS文件:

    namespace BUSsAsDesign.GUI 
    { 
        public partial class IGPopUP : Window 
        { 
    
        //code here 
    
        } 
    } 
    
  • 現在如果u想要改變窗口到用戶控件

  • 變化

    <Window x:Class="BUSsAsDesign.GUI.IGPopUP" > ....... </Window> 
    <!--**becomes**--> 
    <UserControl x:Class="BUSsAsDesign.GUI.IGPopUP" > ....... </UserControl> 
    

namespace BUSsAsDesign.GUI 
    { 
     public partial class IGPopUP : Window 
     { 

     //code here 

     } 
    } 
    //**becomes** 
    namespace BUSsAsDesign.GUI 
    { 
     public partial class IGPopUP : UserControl 
     { 

     //code here 

     } 
    } 

- 我希望它`有用:) 。

0

我想添加這條信息。在Visual Studio 2017中,有一個錯誤,我沒有時間深入挖掘,但會導致此錯誤。 (來自OP)

概述:將部分類聲明爲資源xaml文件的x:Class時,將導致此錯誤,並且在刪除聲明後,錯誤將會持續。

要重現此錯誤,(或如果你在這裏,因爲你收到此錯誤消息)

步驟1:創建一個新的WPF項目。
第2步:創建一個新的資源文件
步驟3:資源文件的命名空間更改爲項目主命名空間(末尾刪除該位。)
步驟4:在資源文件聲明/頭部分,添加一個x:Class聲明,指定您的MainWindow(默認啓動窗口對象)作爲該資源文件的Class。 (EG:X:CLASS =主窗口)
步驟5:清潔/重建解決方案
步驟6:您現在應該得到從OP此錯誤。因此,從資源文件的標題中刪除x:Class Declaration,然後保存/清除/重建項目。

如果錯誤被重現,即使您從資源文件中刪除了x:Class聲明,該錯誤仍應保留。

我能找到的這個bug的唯一的解決辦法,就是刪除項目文件夾,任何其他文件夾建立在裏面。

刪除它們後,清理/重建您的項目,錯誤應該消失。

相關問題