Laden...

Standardwerte vom Usercontrol erscheinen nicht in den Eigenschaften

Erstellt von EyeTrackJack vor 3 Jahren Letzter Beitrag vor 3 Jahren 750 Views
E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren
Standardwerte vom Usercontrol erscheinen nicht in den Eigenschaften

Hallo,

ich programmiere ein Benutzersteuerelement zur komfortablen Zahleneingabe.

Wenn ich es in ein Fenster einfüge, dann erscheinen in den Eigenschaften die Standardwerte nicht. Eigentlich müsste bei Value in dem Fall eine 8 stehen.

Wenn ich das Programm starte und die Werte ansehe, finde ich die Standardwerte wieder.

Was fehlt hier? Was mache ich falsch? Ich habe schon eine Weile gesucht, aber keinen Anhaltspunkt gefunden.

        // Value -------------------------------------------------------------------------------------
        public double Value
        {
            get { return (double)GetValue(ValueProperty); }
            set { SetValue(ValueProperty, value); }
        }

        // Using a DependencyProperty as the backing store for Value.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty ValueProperty =
            DependencyProperty.Register("Value", typeof(double), typeof(ValueEntryControl),
                new FrameworkPropertyMetadata(8.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)
                {
                    DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
                    PropertyChangedCallback = OnValueChanged,
                    CoerceValueCallback = CoerceValue
                }

                );

        public static void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            (d as ValueEntryControl).OnValueChanged(e);
        }

        private void OnValueChanged(DependencyPropertyChangedEventArgs e)
        {
            ValueText.Text = e.NewValue.ToString();
        }

        public static object CoerceValue(DependencyObject d, object value)
        {
            ValueEntryControl TempCtrl = d as ValueEntryControl;

            if (TempCtrl.Value < TempCtrl.Minimum) return TempCtrl.Minimum;
            if (TempCtrl.Value > TempCtrl.Maximum) return TempCtrl.Maximum;
            return value;
        }

Über Hilfe würde ich mich freuen. Jetzt, wo das Ding fast fertig ist.

Grüße.

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

Ja, es zeigt den Wert richtig an.