Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

FreezableCollection<T>-Klasse

Aktualisiert: November 2007

Stellt eine Auflistung von DependencyObject-, Freezable- oder Animatable-Objekten dar. FreezableCollection<T> ist selbst ein Animatable-Typ.

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public class FreezableCollection<T> : Animatable, 
	IList, ICollection, IList<T>, ICollection<T>, IEnumerable<T>, 
	IEnumerable
where T : DependencyObject

J# unterstützt die Verwendung von generischen APIs, aber nicht die Deklaration von neuen generischen APIs.
JScript unterstützt keine generischen Typen oder Methoden.

                    Weitere Informationen finden Sie in den Hinweisen.
                

Typparameter

T

Der Typ der Auflistung. Dieser Typ muss ein DependencyObject oder eine abgeleitete Klasse sein.

Diese Klasse wird bereitgestellt, um das Erstellen benutzerdefinierter Auflistungstypen zu ermöglichen, die Datenbindungen, Änderungsbenachrichtigungen, Ungültigerklärung von Eigenschaften und Animation der zugehörigen Inhalte uneingeschränkt unterstützen.

XAML-Verwendung für FreezableCollection

FreezableCollection<T> unterstützt eine beschränkte XAML-Syntax.

  • Mit einem Objektelement am Stamm können Sie theoretisch ein FreezableCollection<T>-Objektelement ohne Einschränkungen angeben, das ebenfalls das x:TypeArguments-Attribut angeben muss, um die Einschränkung zu deklarieren. Dies ist jedoch kein gängiges Szenario, da FreezableCollection<T> hierfür das Stammelement sein muss. Diese Einschränkung gilt, da die XAML-Prozessorimplementierung in WPF nur dann x:TypeArguments-Attribut unterstützen kann, wenn das Element, auf das es festgelegt wird, das Stammelement darstellt, und x:TypeArguments muss für jeden offen beschränkten generischen Typ verwendet werden, wenn ein generischer Typ in XAML instanziiert werden soll. Es ist unwahrscheinlich, dass eine FreezableCollection<T> als Stammelement gewünscht wird, selbst als loses XAML.

  • Wenn Sie von FreezableCollection<T> ableiten und eine Typeinschränkung in der abgeleiteten Auflistung anwenden, kann die abgeleitete Auflistung eine Vielzahl von Verwendungen unterstützen. Dies ist möglich, da durch die Einschränkung in der Ableitung keine x:TypeArguments mehr übergeben werden müssen.

    • Die typische XAML-Verwendung für eine solche abgeleitete Auflistung erfolgt mit einer impliziten Auflistungssyntax. Auflistungen, die bestimmte Schnittstellen unterstützen, müssen die Auflistung selbst nicht als Objektelement angeben. Weitere Informationen zur Auflistungssyntax in XAML finden Sie unter Terminologie der XAML-Syntax. Ein Objekt mit einer Eigenschaft, bei der die Eigenschaft vom Typ FreezableCollection<T> ist und durch DependencyObject eingeschränkt wird, kann beispielsweise die folgende Syntax unterstützen:

      <object>
        <object.property>
          oneOrMoreDependencyObjectElements
        </object.property>
      </object>
      
    • Sofern der Standardkonstruktor nicht ausgeblendet wird, kann die abgeleitete Auflistung auch eine Objektelementsyntax unterstützen (bei der das Objektelement explizit ist, im Gegensatz zur oben beschriebenen impliziten Verwendung). Dabei muss es sich nicht um das Stammelement handeln. Sie können auch die abgeleitete Auflistung als Stammelement verwenden, ohne dass Sie x:TypeArguments angeben müssen. Die Verwendung einer Auflistung als Stammelement ist jedoch nicht üblich.

  • Alle untergeordneten Elemente der Auflistung in einem der obigen Szenarios müssen vom Typ der implementierten Einschränkung sein oder der Einstellung von x:TypeArguments entsprechen.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0
Anzeigen: