Definieren von WPF-Eigenschaften zu lang ist:für DependencyProperty.Register Suchen Verknüpfung
public static readonly DependencyProperty FooProperty =
DependencyProperty.Register("Foo", typeof(string), typeof(FooClass), new PropertyMetadata("Foooooo"));
Ich habe eine Hilfsmethode, es ist ein bisschen kürzer zu machen:
public static readonly DependencyProperty FooProperty =
WpfUtils.Property<string, FooControl>("Foo", "Foooooo");
Code:
public partial class WpfUtils
{
public static DependencyProperty Property<T, TClass>(string name)
{
return Property<T, TClass>(name, default(T));
}
public static DependencyProperty Property<T, TClass>(string name, T defaultValue)
{
return DependencyProperty.Register(name, typeof(T), typeof(TClass), new PropertyMetadata(defaultValue));
}
}
Gibt es bessere Helfer?
Eine Sache in Ihrem Beispiel verpassten ist die Deklaration Foo Eigenschaft Wrapper, die Art, um herauszufinden, erforderlich. Aber das ist großartig! :-) – alex2k8
Als Randnotiz sollte ich darauf hinweisen, dass dieser Code nur funktioniert, weil statische Konstruktoren nicht inline sein können. Versuchen Sie es nicht für andere Sachen im Produktionscode ohne ein gutes Verständnis der CLR. –