Silverlight 3では、私はMVVMと、検証エラーが発生した場合にsettersが例外を発生させる検証の原則を使用しています。私が使用してフィールド上のバインディング構文を使用して双方向すなわち: SilverlightでValidationSummaryに閉じるボタンを追加する方法
<TextBox x:Name="TextBoxClientName" Text="{Binding Name,Mode=TwoWay,ValidatesOnExceptions=True,NotifyOnValidationError=true}" Grid.Column="1" Grid.Row="0" Margin="5 5 5 5" />
私は注釈を使用してViewModelにでこのプロパティを検証:
[Required(ErrorMessage = "Name is required")]
public string Name
{
get
{
return _client.Name;
}
set
{
Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "Name", DisplayName="Client Name" });
_client.Name = value;
}
}
は、私が検証の概要を持っているし、すべてがうまく動作しますが笑、私が探している機能は以下の通りです:
あなたはデータフォームを持っていますが、保存をクリックしたときにのみ検証サマリーが上に表示されるようにします。さらに、そのValidationSummaryに閉じるボタンを実装しますユーザーはenterで続行できます矯正する。
私は視認性を制御する方法やvalidationsummaryを切り替える方法がわかりませんが、私はVisibilityを試しました。以下は、提出のエラーを収集し、私が試したコード、ですが、私はにValidationSummaryにそれらを適用することはできません。
public void Save()
{
List<ValidationError> errors = new List<ValidationError>();
foreach (UIElement ui in LayoutRoot.Children)
{
FrameworkElement fe = ui as FrameworkElement;
if (fe != null)
{
foreach (ValidationError ve in Validation.GetErrors(fe))
{
errors.Add(ve);
}
}
}
if (errors.Count > 0)
{
Validation1.DataContext = errors;
Validation1.Filter = ValidationSummaryFilters.All;
}
else
{
if (Saved != null)
Saved(this, EventArgs.Empty);
}
}
乾杯、
アンドリュー