WPF, Trigger, Property ...



  • Ich habe ein WPF Projekt angelegt, die Haupt-Klasse hiess Window1.
    Dort habe ich eine Eigenschaft namens public bool PropertieX eingetragen.
    Im XAML Code wollte ich einen Trigger setzen:

    <Trigger Property="PropertieX" Value="True">
    ...
    </Triggger>

    Das wurde angemekert: "PropertieX konnte nicht aufgelöst werden".
    Was ist denn eine Dependency Eigenschaft ?



  • Wie wird eine Dependency Property deklariert bzw definiert ?



  • public class ExampleClass : TextBox
    {
        public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
                    "Value", // name
                    typeof(double), // type
                    typeof(ExampleClass), // owner
                    new PropertyMetadata(new PropertyChangedCallback(ValueChanged))); // what shold happen on a change
    
        // wrapper for c# code
        public double Value
        {
            get { return (double)GetValue(ValueProperty); }
            set { SetValue(ValueProperty, value); }
        }
    
        // callback after change
        private static void ValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            ExampleClass box = sender as ExampleClass;
            box.DoAnything(e.NewValue);
        }
    }
    

    die metadata koennen noch andere sein - affectsrender, affectsmeasure (PropertyChangeMetaDataOptions glaub ich) je nachdem was du machen moechtest
    schau am besten in die msdn

    attached property ist fast simultan


Anmelden zum Antworten