Laden...

Wie kann ich bei Dependency Property eigene Variablen in den Eventargs übergeben?

Erstellt von EyeTrackJack vor 3 Jahren Letzter Beitrag vor 3 Jahren 680 Views
E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren
Wie kann ich bei Dependency Property eigene Variablen in den Eventargs übergeben?

Hallo,
wie kann ich bei einer Dependency Property eigene Variablen in den Eventargs übergeben, wie man es bei einer normalen Event macht? Der Hintergrund hier ist, dass ich über die Eventargs die Information übergeben will, ob der Wert vom Programm verändert wurde, oder der Benutzer das zum Beispiel mit der Maus getan hat. Dafür stelle ich mir eine bool Variable vor.

Wie mache ich das am besten?

Grüße.

Tobias

        public static readonly RoutedEvent ValueChangedEvent = EventManager.RegisterRoutedEvent("ValueChanged", RoutingStrategy.Bubble,
            typeof(RoutedPropertyChangedEventHandler<double>), typeof(ValueEntryControl));

        public event RoutedPropertyChangedEventHandler<double> ValueChanged
        {
            add { AddHandler(ValueChangedEvent, value); }
            remove { RemoveHandler(ValueChangedEvent, value); }
        }

        private void OnValueChanged(double oldValue, double newValue)
        {
            //Workaround for the problem that coerce value doesn't help to prevent from sending invalid values
            if (oldValue < Minimum) oldValue = Minimum;
            if (oldValue > Maximum) oldValue = Maximum;
            if (newValue < Minimum) newValue = Minimum;
            if (newValue > Maximum) newValue = Maximum;
            if (newValue == oldValue) return;

            RoutedPropertyChangedEventArgs<double> args = new RoutedPropertyChangedEventArgs<double>(oldValue, newValue);
            args.RoutedEvent = ValueEntryControl.ValueChangedEvent;           
            RaiseEvent(args);
        }
5.657 Beiträge seit 2006
vor 3 Jahren

wie kann ich bei einer Dependency Property eigene Variablen in den Eventargs übergeben

Gar nicht. Eine DependencyProperty ist eine Eigenschaft und kein Event. In deinem Code finde ich auch kein DependencyProperty.

Bitte erkläre dein Problem mal ein bißchen ausführlicher. Wozu meinst überhaupt du eine Unterscheidung zwischen Änderungen aus der Anwendung und durch den Benutzer zu brauchen? Da scheint mir schon die grundsätzliche Herangehensweise auf einem Fehlschluß zu basieren.

Weeks of programming can save you hours of planning

E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Hallo, ich glaube, ich war gestern irgendwie müde. Ich meine das ValueChangedEvent, das beim Ändern der Property gesendet wird.

Und die Unterscheidung, ob das Programm oder der Benutzer die Änderung vorgenommen hat ist wichtig, damit es nicht zu einer Wiederholung kommt, wo der Wert gesetzt wird, etwas auf dem Bildschirm neu platziert wird und dadurch wieder der Wert gesetzt wird.

E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Hallo Th69,
habe das mal angesehen, was du gezeigt hast. Ok, das war einfach 😉 Im Grunde mache ich das so wie beschrieben, dass ich Variablen einsetze, die dann bei Ausführung des Events entscheiden, was passiert. Dachte nur, vielleicht gibt es eine Lösung ohne zusätzliche Variablen.
Grüße. Tobias