2012-04-10 7 views
1

Ist der Typ System.Windows.PresentationFrameworkCollection<T> nicht für die Vererbung gedacht? Ich habe versucht, ein benutzerdefiniertes <Type>AnimationsFromKeyFrames-Objekt zu erstellen, aber ich kann den Collection-Typ für die KeyFrames-Eigenschaft nicht erstellen, da Visual Studio anscheinend einige Fehler ausfüllt.

Visual Studio berichtet die folgenden abstrakten Mitglieder nicht umgesetzt werden, obwohl sie nicht existieren auf einem der vererbten Objekte:Vererben System.Windows.PresentationFrameworkCollection <T> in Silverlight-Bibliothek

‚MyKeyFrameCollection‘ implementiert nicht geerbt abstrakte Mitglied ‚System.Windows .PresentationFrameworkCollection <MyKeyFrame> .SetItemImplSkipMethodPack (int, MyKeyFrame) '

'MyKeyFrameCollection' implementieren abstrakten Mitglied nicht geerbt' System.Windows.PresentationFrameworkCollection <MyKeyFrame> .GetItemImplSkipMethodPack (int) '

'MyKeyFrameCollection' implementiert nicht geerbt abstraktes Mitglied 'System.Windows.PresentationFrameworkCollection <MyKeyFrame> .RemoveInternal (MyKeyFrame)'

'MyKeyFrameCollection' nicht geerbt implementieren abstraktes Mitglied' System .Windows.PresentationFrameworkCollection <MyKeyFrame> .InsertInternal (int, MyKeyFrame) '

'MyKeyFrameCollection' implementiert nicht geerbt abstrakte Mitglied' System.Windows.PresentationFrameworkCollection < MyKey Rahmen > .IndexOfInternal (MyKeyFrame) '

'MyKeyFrameCollection' implementiert nicht geerbt abstraktes Mitglied 'System.Windows.PresentationFrameworkCollection <MyKeyFrame> .ContainsInternal (MyKeyFrame)'

'MyKeyFrameCollection' implementiert nicht geerbt abstraktes Mitglied' System.Windows.PresentationFrameworkCollection <MyKeyFrame> .AddInternal (MyKeyFrame)‘

Wie gehe ich entweder diese Methoden aus bizarro Welt Implementierung oder auch Visuelle sagen Studio, um aufzuhören, sich zu ärgern und nur das Projekt zu kompilieren?

Ich habe versucht, diese Methoden explizit definiert, die folgende verwendet, die nicht (zu Recht, wie pro vorheriger Nicht-Existenz Bemerkung) Arbeit:

void System.Windows.PresentationFrameworkCollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame) 
void System.Collections.Generic.IList<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame) 
void System.Collections.Generic.ICollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame) 
void System.Collections.IList.AddInternal(MyKeyFrame keyFrame) 
void System.Collections.ICollection.AddInternal(MyKeyFrame keyFrame) 

Auf Latein am Ende, und denkt, dass MS doesn‘ Soll die Community KeyFrameCollections erstellen?

EDIT: Ich habe versucht, und meine einzige override Optionen sind Equals, GetHashCode und ToString. Ist es möglich, dass diese abstrakten Mitglieder protected internal sind, so dass die vorhandenen Framework-Klassen von ihnen erben können, aber benutzerdefinierte Klassen nicht?

Antwort

2

PresentationFrameworkCollection ist eine öffentliche abstrakte Klasse, aber die Mitglieder, auf die Sie sich beziehen, sind internal abstract, was bedeutet, dass Sie sie nicht überschreiben können.

+0

Das ist, was ich hatte Angst.Ich versuchte es zu umgehen, indem ich 'DependencyObject' erbte und' IList 'implementierte, ähnlich wie' PresentationFrameworkCollection' funktioniert, aber jetzt, wenn ich versuche zu rendern, bekomme ich eine COM-Ausnahme. Das Ganze für jetzt ausrangieren. –