WPF függőség ingatlan, bemutató, kód q - egy orosz (ru)

Függőség tulajdonságok - egy olyan típusú tulajdonság, amely kiterjeszti a CLR tulajdon. Míg CLR ingatlan közvetlenül leolvasható az osztály tagja, Függőség tulajdonság fogja megoldani dinamikusan, ha hívja a getValue (), amely a tárgyat kap öröklés útján egy alap osztály DependencyObject. Ez a rész fogja pusztítani függőség tulajdonságait és ismertesse azok használata fogalmilag és segítségével kód példák.

Normál ingatlan függőségek

Gyakorlatilag minden nagyon WPF vezérlők használatát függőségi tulajdonság. Függőség tulajdonság lehetővé teszi a használatát sok WPF funkciók, amelyeket nem lehet a szokásos CLR tulajdonságait, beleértve többek között, támogatja a stílusok, animációk, adatkötéseket érték öröklési és értesítésre.

TextBox.Text tulajdon - egy egyszerű példát, ahol egy szabványos függőségi tulajdonság. Itt, az adatok kötelező, ha a szöveg egy szabványos CLR tulajdon.

Függőségi tulajdonságokat lehet meghatározni csak osztályba származó DependencyObject. mint például FrameworkElement. Ellenőrző, és így tovább. D.

Az egyik leggyorsabb módja, hogy hozzon létre egy szabványos függőséget tulajdonságok nélkül kell megjegyeznünk, hogy a szintaxis használata a töredék «propdp», írja propdp majd nyomja meg a Tab billentyűt. fragmentumot kódot kell hozzá, amely azután módosítható az Ön igényei szerint:

Ahhoz, hogy a változás, meg kell, hogy a fül különböző részein egy darab kódot, beleértve a frissítési a tulajdonság nevét, az ingatlan típusától tartalmazó osztály, és az alapértelmezett értékeket.

Számos fontos egyezmények / szabályok:

Hozzon létre egy CLR ingatlan egy függőségi tulajdonság. Ez a tulajdonság a kódot a létesítmény vagy más felhasználók számára. Azt kell hívni a getValue és setValue így a fogyasztóknak nem kell rá.

Név függőség tulajdonjogot. Field DependencyProperty lehet public static readonly. Úgy kell egy nevet, amely megegyezik a neve CLR tulajdonságait, és a végén a „Tulajdonságok”, mint a szöveg és TextProperty.

Ne adjon további logika CLR tulajdonságait konfigurációs eszköz. Függőség rendszer tulajdonságait (és különösen XAML) nem használja a CLR tulajdonság. Ha azt szeretnénk, hogy végre egy műveletet, amikor egy ingatlan értéke változik, meg kell adnia egy visszahívási keresztül PropertyMetadata.

A kiküszöbölésére, hogy meghatározza Mode = kétutas a kötések (hasonló TextBox.Text viselkedés), frissítse a kódot kell használni helyette FrameworkPropertyMetadata PropertyMetadata és adja meg a megfelelő zászlót:

Hasonló tulajdonságokkal függőség

Csatolt tulajdon - ez egy függőségi tulajdonság, amely alkalmazható bármely DependencyObject javítani a viselkedését a különböző kontrollok, illetve szolgáltatásokat, amelyek ismerik a tulajdonságait.

Néhány példa a használatát mellékelt tulajdonságok közé tartoznak:

  1. A jelenléte a szülő elem ismétlés révén a gyerek és néhány fellépés a gyermekekre. Például Grid Control használja a tulajdonságait kapcsolódó Grid.Row. Grid.Column. Grid.RowSpan és Grid.ColumnSpan forgalomba elemeket sorokba és oszlopokba.
  2. Add vizuális hatások a meglévő kontrollok a testreszabható sablonok, mint a hozzá vízjelet az üres szöveges mezők alkalmazása nélkül TextBox alosztálya.
  3. Nyújtott általános szolgáltatások és funkciók néhány, vagy az összes meglévő ellenőrzések, az ilyen ToolTipService vagy FocusManager. Ezek általában az úgynevezett csatolt viselkedést.
  4. Ha azt szeretnénk, hogy örökli azokat a vizuális fa, például hasonló a viselkedése a DataContext.

Ez ismét azt mutatja, hogy mi történik, ha használja Rács.

Grid.Column nem tulajdonság, hogy létezik-e a címke vagy TextBox. Inkább egy rács ellenőrző vizsgálatokat a gyermek elemek és rendezi őket értékekkel összhangban mellékelt tulajdonságait.

Mi továbbra is használni a Grid ezt a példát. Meghatározása Grid.Column alább látható, de DependencyPropertyChangedEventHandler kizárt rövidség kedvéért.

Mivel csatolt tulajdonságok lehet csatolni széles körű elemek, nem lehet őket végrehajtani CLR tulajdonságait. Ahelyett, hogy bevezetett gőz statikus módszerekkel.

Ezért, ellentétben a szokásos függőségi tulajdonságok kapcsolódnak tulajdonságokkal is meghatározott osztályok, amelyek nem származnak DependencyObject.

Azt is használja ugyanazt elnevezési megállapodások érvényesek a szokásos tulajdonságai függőségek: RowProperty függőség területén a megfelelő módszerek és GetRow SetRow.

Bár az öröklési tulajdonságok megjelenhetnek működő független függőség ingatlan öröklés viselkedése független tulajdonságok az egész meghatározott határain elemek a fa végre meghatározatlan ideig. Mindig használja RegisterAttached regisztrálni ingatlan, ahol megadhatja az öröklés a metaadatokat.

Függőség Tulajdonságok írásvédettségre

Függőség tulajdonság csak olvasható, mint egy normális tulajdonságától függően, de ez úgy van kialakítva, hogy a beállított értékek kívülről ellenőrzés. Ez jól működik, ha van egy olyan tulajdonsága, amely kizárólag a fogyasztók tájékoztatására, például, vagy IsMouseOver IsKeyboardFocusWithin.

Mint a hagyományos tulajdonságait függőségi viszonyok egy csak olvasható tulajdonság meg kell határozni egy osztályban, amit DependencyObject.

Itt alkalmazzák ugyanazt a szabályozást, amely vonatkozik a hagyományos függőség tulajdon, de két fontos különbség:

  1. DependencyProperty származik saját DependencyPropertyKey.
  2. CLR védett tulajdon vagy magántulajdon helyett nyilvános.

Felhívjuk figyelmét, hogy a szetter halad MyPropertyPropertyKey nem MyPropertyProperty a setValue módszer. Mivel az ingatlan lett meghatározva, csak olvasható, minden olyan kísérletet, hogy használja setValue az ingatlan kell használni a túlterhelés vevő DependencyPropertyKey; Ellenkező esetben, akkor InvalidOperationException.

WPF oktatóanyagok

Kapcsolódó cikkek