TextBox
検証したいWPFがあります。私はBinding
それを検証するために使用しています:
<TextBox Text="{Binding Path=Name, UpdateSourceTrigger=Explicit}" TabIndex="0" LostFocus="TextBox_OnLostFocus">
</TextBox>
LostFocus
イベント:
private void TextBox_OnLostFocus(object sender, RoutedEventArgs e)
{
((Control) sender).GetBindingExpression(TextBox.TextProperty);
}
検証の背後にあるコード:
public string Name
{
get { return _name; }
set
{
_name = value;
this.OnPropertyChanged(new PropertyChangedEventArgs("Name"));
}
}
public string Error { get { return this[null]; } }
public string this[string columnName]
{
get
{
string result = string.Empty;
columnName = columnName ?? string.Empty;
if (columnName == string.Empty || columnName == "Name")
{
if (string.IsNullOrEmpty(this.Name))
{
result += Properties.Resources.ValidationName + Environment.NewLine;
}
}
return result.TrimEnd();
}
}
いくつか質問があります:
1.Explicit
最初にウィンドウをロードしたとき、コントロールは赤い四角 (検証用) で囲まれていますが、(横に)起動したときにのみ表示されるようにしたいと考えています。
2.すべてのフィールドが検証されたかどうかを確認するにはどうすればよいですか? つまり、ボタンを押すと、すべてのコントロールが検証されているかどうかを知る方法を知るだけで済みます。
注:コンストラクターには次のコンテキストがあります。
User u = new User();
DataContext = u;