Je tente d'augmenter les erreurs de validation: 1. lorsque l'utilisateur entre un MSRP américain qui n'est pas un nombre, silverlight affiche une erreur en quittant le champ 2. Cependant, si dans le même champ Je mets un nombre négatif, aucune erreur n'est affichée même si une plage explicite est spécifiée
De quoi ai-je besoin pour changer?La validation de la plage de données ne fonctionne pas
En outre, comme une question de bonus, que dois-je utiliser dans le XAML pour lire la valeur d'affichage (Name = « Mon nom est PDSF: » plutôt que de spécifier explicitement autre chose
public class CalculatorParameters : INotifyPropertyChanged
{
private double _usMsrp;
public CalculatorParameters()
{
}
[Display(Name = "My Name is US MSRP:",
Description = "The residual value is based on the US MSRP, even with Euro-Delivery")]
[Range(0, 150000, ErrorMessage = "US MSRP must be a positive amount under $150,000")]
public double UsMsrp
{
get { return _usMsrp; }
set
{
_usMsrp = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("UsMsrp"));
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
Et voici le XAML
<UserControl x:Class="Silverlight.ConfigEnhanced.UcFinance"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:my="clr-namespace:Silverlight.ConfigEnhanced"
xmlns:df="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="650" d:DesignWidth="500" >
<UserControl.Resources>
<my:CalculatorParameters x:Key="descriptor"/>
</UserControl.Resources>
<df:DataForm x:Name="df1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CurrentItem="{StaticResource descriptor}" CommandButtonsVisibility="None" AutoGenerateFields="False" >
<df:DataForm.EditTemplate>
<DataTemplate>
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="160"></RowDefinition>
<RowDefinition Height="20"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="270"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="2" Grid.Column="0">
<TextBlock Text="Leasing" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" Margin="0,0,0,15" />
<df:DataField Label="Term in Months">
<TextBox Name="txtBoxLeaseTermInMonths" Text="{Binding LeaseTermInMonths, Mode=TwoWay}" GotFocus="RecomputeLease"/>
</df:DataField>
<df:DataField Label="Down Payment">
<TextBox Name="txtBoxLeaseDownPayment" Text="{Binding LeaseDownPayment, Mode=TwoWay}" GotFocus="RecomputeLease"/>
</df:DataField>
<df:DataField Label="Money Factor">
<TextBox Name="txtBoxLeaseMoneyFactor" Text="{Binding MoneyFactor, Mode=TwoWay}" GotFocus="RecomputeLease"/>
</df:DataField>
<df:DataField Label="US MSRP">
<TextBox Name="txtBoxLeaseUsMsrp" Text="{Binding UsMsrp, Mode=TwoWay}" GotFocus="RecomputeLease"/>
</df:DataField>
</StackPanel>
</Grid>
</DataTemplate>
</df:DataForm.EditTemplate>
</df:DataForm>
</UserControl>