C# – Property a Property Category – Definice vlastností objektů a jejich členění do skupin

C#WPF

Property

References:
WindowsBase

Namespaces:
using System.Windows;

K definici nové vlastnosti třídy je třeba deklarovat

(1) public static DependencyProperty
(2) public property

Deklarace public static DependencyProperty definuje globální název, typ, výchozí hodnotu vlastnosti a třídu, které je vlastnost přiřazena. Deklarace public property potom standardní přístup (get, set) k hodnotě vlastnosti v konkrétní instanci třídy. Takže např. vlastnost Číslo textu třídy MyButton by byla deklarována takto

public class MyButton : Button
{
   public static readonly DependencyProperty TextNoProperty = 
                 DependencyProperty.Register("TextNo",
                                             typeof(int),
                                             typeof(MyButton),
                                             new PropertyMetadata(13));
   public int TextNo
   {
      get { return (int)GetValue(TextNoProperty); }
      set { SetValue(TextNoProperty, value); }
   }
}

Nově definovaná vlastnost se pak v okně Properties objeví v kategorii Miscellaneous (Ostatní) – viz obr.

Property category a další atributy vlastnosti

References:
System

Namespaces:
using System.ComponentModel;

Je-li výhodné zařadit nově definovanou vlastnost do jiné kategorie, např. Nové vlastnosti, lze to provést velmi snadno přidáním atributu Category před deklaraci samotné vlastnosti takto

   [Category("Nové vlastnosti")]
   public int TextNo
   {
      get { return (int)GetValue(TextNoProperty); }
      set { SetValue(TextNoProperty, value); }
   }

Pro lepší srozumitelnost lze též přidat popis vlastnosti prostřednictvím atributu Description, který se zobrazí po najetí myší

   [Category("Nové vlastnosti")]
   [Description("Číslo textu tlačítka")]
   public int TextNo
   {
      get { return (int)GetValue(TextNoProperty); }
      set { SetValue(TextNoProperty, value); }
   }

S oběma novými atributy pak okno Properties vypadá takto

C#WPF