Je travaille sur UserControl
où j'ai les propriétés MaximumAngle
et MinimumAngle
.Deux propriétés de dépendance UserControl qui doivent être différentes
// MinimumAngle
public double MinimumAngle
{
get { return (double)GetValue(MinimumAngleProperty); }
set { SetValue(MinimumAngleProperty, value); }
}
public static readonly DependencyProperty MinimumAngleProperty = DependencyProperty.Register(
"MinimumAngle", typeof(double), typeof(RoundGauge), new PropertyMetadata((double)0, MinimumAnglePropertyChanged));
private static void MinimumAnglePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
RoundGauge rg = (RoundGauge)d;
rg.CreateTickLines();
}
// MaximumAngle
public double MaximumAngle
{
get { return (double)GetValue(MaximumAngleProperty); }
set { SetValue(MaximumAngleProperty, value); }
}
public static readonly DependencyProperty MaximumAngleProperty = DependencyProperty.Register(
"MaximumAngle", typeof(double), typeof(RoundGauge), new PropertyMetadata((double)180, MaximumAnglePropertyChanged));
private static void MaximumAnglePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
RoundGauge rg = (RoundGauge)d;
rg.CreateTickLines();
}
Ces propriétés doivent être différentes, parce que ma méthode CreateTickLines
va fou quand il doit faire face à zéro.
Qu'est-ce que je peux faire avec ça?
Enregistrez un [CoerceValueCallback] (https://msdn.microsoft.com/fr-fr/library/system.windows.coercevaluecallback (v = vs.110) .aspx) avec des métadonnées de propriété. – Clemens
Vous pouvez probablement utiliser un 'ValidateValueCallback' comme décrit sur la page MSDN [Callbacks et validation des propriétés de dépendance] (https://msdn.microsoft.com/en-us/library/ms745795 (v = vs.110) .aspx) – Rachel