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.
Überprüfe mal, ob du mittels DefaultValueAttribute den Wert angezeigt bekommst?