 | AttachedPropertiesContainer Felder |
Der AttachedPropertiesContainer Typ exponiert die folgenden Member.
Felder | Name | Beschreibung |
---|
  | HasParentProperty |
Bei True hat der Knoten einen Eltern-Knoten,
bei False ist er die Root.
|
  | LastNotNullLogicalProperty |
Attached Property für einen nullable Boolean zur Weitergabe des logischen Zustands
des dem Control zugeordneten Checkers (wird z.B. zur abhängigen Farbgebung
(false=rot, true=grün) einer übergeordneten Border in einem ControlTemplate genutzt):
Nach diversen Fehlversuchen hat sich als einzige gangbare Lösung folgende Vorgehensweise
herauskristallisiert: einem dem ControlTemplate übergeordneten Control oder
DataTemplate wird die AttachedProperty "LastNotNullLogical" zugeordnet:
<Expander Name="Exp" Template="{StaticResource ExpanderStyleHeaderCentered}"
...
attached:AttachedPropertiesContainer.LastNotNullLogical="{Binding LastNotNullLogical, diag:PresentationTraceSources.TraceLevel=High}"
>
Die AttachedProperty "LastNotNullLogical" wird dabei direkt an "LastNotNullLogical" aus
dem DataContext, hier "LogicalNodeViewModel" gebunden.
Im untergeordneten ControlTemplate, hier <ControlTemplate TargetType="ToggleButton">
in LogicalTaskTreeControlStaticResourceDictionary.xaml werden DataTrigger an das übergeordnete
Control mit Path auf die AttachedProperty "LastNotNullLogical" gebunden:
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Expander}},
Path=(attached:AttachedPropertiesContainer.LastNotNullLogical)}" Value="True">
<Setter Property = "Border.BorderBrush" TargetName="ToggleButtonBorder" Value="{StaticResource ItemBorderBrushGreen}" />
</DataTrigger>
<DataTrigger Binding = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Expander}},
Path=(attached:AttachedPropertiesContainer.LastNotNullLogical)}" Value="False">
<Setter Property = "Border.BorderBrush" TargetName = "ToggleButtonBorder" Value = "{StaticResource ItemBorderBrushRed}" />
</ DataTrigger>
Wichtiger Hinweis: andere Lösungsansätze scheiterten spätestens bei Umschaltung der Tree-Orientierung.
|
  | ParentChildOrientationProperty |
Ausrichtung der Kind-Knoten, horizontal oder vertikal.
|
Zurück nach oben
Siehe auch