locked
Problem mit nachträglicher änderung der Erbung RRS feed

  • Frage

  • Hallo,

    ich habe ein kleines Problem was immer wieder beim ausführen meines Projektes kommt.

    Und zwar ich habe zuerst ein UserControl namens Item erstellt. Irgendwann später habe eine Klasse BasisItem erstellt. Nun möchte ich das meine Itemklasse von der Basisklasse erbt.

    Nun gut hab dann einfach in der Itemklasse das UserControl zu BasisItem abgändert. Nun bekomme ich jedesmal beim Ausführen die Fehlermeldung: "Partielle Deklaration von "Item" dürfen keine unterschiedlichen Basisklassen angeben.

    Das Problem liegt hier in der Item.g.i.cs Date die ja immer wieder neu generiert wird. In dieser Datei steht weiterhin das mein Item von UserControl erbt. Ändere ich diese zu BasisItem kann das Projekt ausgeführt werden nur ändert er den Code danach gleich wieder zu UserControl ab. Woher holt er sich die Informationen? Wie kann ich das ändern das es bleibt?

    Item.cs:

    public partial class item : BaseItem

    ...

    BasisItem.cs:

     public class BaseItem : UserControl

    ...

    obj/Debug/TempPE/Item.g.cs:

    public partial class item : System.Windows.Controls.UserControl <-- da ist immer das Problem

     

    Liegt es jetzt daran das ich die Basisklasse nachträglich geändert habe?

    Vielen Dank.

    Gruße

    Dragon

    Dienstag, 2. November 2010 16:09

Antworten

  • Hallo,

     

    das Root-Element der .xaml Datei muss nicht UserControl, sondern <my:BaseItem> heissen. Zusätzlich musst Du noch ggf. den Namespace-Prefix "my" deklarieren.

    Beispiel:

    <my:TestBase x:Class="SilverlightApplication1.SilverlightControl1"
     xmlns:my="clr-namespace:SilverlightApplication1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      d:DesignHeight="300" d:DesignWidth="400" >
      
      <Grid x:Name="LayoutRoot" Background="White">
      </Grid>
    </my:TestBase>
    
    

    Gruß,

    Sergej.

    • Als Antwort markiert DragonByte Dienstag, 2. November 2010 18:01
    Dienstag, 2. November 2010 17:58

Alle Antworten

  • Hallo,

     

    das Root-Element der .xaml Datei muss nicht UserControl, sondern <my:BaseItem> heissen. Zusätzlich musst Du noch ggf. den Namespace-Prefix "my" deklarieren.

    Beispiel:

    <my:TestBase x:Class="SilverlightApplication1.SilverlightControl1"
     xmlns:my="clr-namespace:SilverlightApplication1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      d:DesignHeight="300" d:DesignWidth="400" >
      
      <Grid x:Name="LayoutRoot" Background="White">
      </Grid>
    </my:TestBase>
    
    

    Gruß,

    Sergej.

    • Als Antwort markiert DragonByte Dienstag, 2. November 2010 18:01
    Dienstag, 2. November 2010 17:58
  • Besten Dank. Das war es. Irgendwie logisch. Aber dachte vorerst es muss so heißen.

     

    Danke dir!!!

    Dienstag, 2. November 2010 18:02