Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie kann ich bei Dependency Property eigene Variablen in den Eventargs übergeben?
EyeTrackJack
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

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

beantworten | zitieren | melden

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);
        }
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5959
Herkunft: Leipzig

beantworten | zitieren | melden

Zitat von EyeTrackJack
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
private Nachricht | Beiträge des Benutzers
EyeTrackJack
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3946

beantworten | zitieren | melden

Dann schau mal in [FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung.
private Nachricht | Beiträge des Benutzers
EyeTrackJack
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers