2010-02-24 7 views

Antwort

38

Nein. Verhaltensweisen sind im Grunde nur eine viel schönere Abstraktion zusätzlich zu den angehängten Eigenschaften.

Durch die Verwendung von Behavior<T> erhalten Sie direkten Zugriff auf die AssociatedObject, sowie die Möglichkeit, das Verhalten zur Laufzeit einfach anzuhängen und zu lösen.

Sie könnten dies mit angehängten Eigenschaften tun, aber es würde erfordern, eine Menge zusätzlicher Rohrleitungen hinzuzufügen.

+0

Es wird jedoch schwierig, sie mit einem Stil hinzuzufügen. –

+1

Tatsächlich gibt es ein paar Dinge, die Sie nicht mit angehängten Eigenschaften tun können ... Zum Beispiel wäre es möglich, mehrere Instanzen desselben Verhaltens hinzuzufügen, aber Sie können nur einmal eine angehängte Eigenschaft festlegen. OTOH, angefügte Eigenschaften haben eine kürzere Syntax und können in Stilen verwendet werden, was mit Verhalten schwierig ist. –

+0

@ThomasLevesque Sie können auch eine Attached-Eigenschaft definieren, die Verhaltensweisen zu einem bestimmten UI-Element hinzufügt und diese Eigenschaft in einem Stil festlegt. Haha =) –

2

Behaviors basieren auf angefügten Eigenschaften. Das heißt, wenn Sie kein spezifisches Verhalten finden können - Sie schreiben Ihr eigenes, entweder basierend auf dem von Blend bereitgestellten Behavoirs-Framework oder indem Sie Ihren eigenen AP erstellen ...

Ich habe immer, dass Verhaltensweisen sind ein großer Beweis für die Eigenschaften angehängter Eigenschaften. Einfach unglaublich, was du mit ihnen bekommen kannst.

7

Ich neige dazu, Verhalten zu verwenden, um Funktionalität hinzuzufügen, die sichtbare Änderungen macht. Während ich angefügte Eigenschaften verwenden, um einem Objekt zusätzliche Informationen hinzuzufügen, die anschließend von anderen Objekten verwendet werden.

z. Grid.Row erstellt eine gute angehängte Eigenschaft, da sie vom Grid und nicht vom Ziel verwendet wird. Auf der anderen Seite würde AutoKorrektur ein gutes Verhalten zeigen, da dies sichtbare Änderungen am Objekt machen wird.

0

Dies ist nicht die Antwort. Aber die beste Erklärung, die ich zu diesem Thema finden kann

Brian Noyes beschreibt in seinen Artikeln klar die Unterschiede zwischen den einzelnen Konzepten.

+0

Der angegebene Link ist unterbrochen. –

+1

Hier ist der Arbeitslink http://briannoyesblog.azurewebsites.net/2012/12/20/attached-behaviors-vs-attached-properties-vs-blend-behaviors/ – lukeguy