0
バインドするタイプが一致しない場合、どのような例外が発生しますか?たとえば、プロパティのTextBox
をinteger
プロパティにバインドし、テキストフィールドに何らかの文字(例:abc)を入力するとしますか?バインディングタイプが一致しない場合のWPF例外
バインドするタイプが一致しない場合、どのような例外が発生しますか?たとえば、プロパティのTextBox
をinteger
プロパティにバインドし、テキストフィールドに何らかの文字(例:abc)を入力するとしますか?バインディングタイプが一致しない場合のWPF例外
「検証」と呼ばれることに興味があります。自動的にトリガーすべきテキストなどへの整数のバインディングに関連するデフォルトの検証があると私は信じています。
デフォルトでは、赤い四角形のテキストボックスが強調表示され、エラーメッセージが表示されます。また、ソースプロパティを決定的に更新しません。
カスタムデータ検証メッセージ(およびその他の基準)を追加できます。これはあなたの結合にValidatesOnDataErrors="True"
を追加してください。
<TextBox Text="{Binding MyInteger, ValidatesOnDataErrors=True}" Width="100" Margin="20"/>
そして、あなたのデータコンテキストを作るには、IDataErrorInfo
を継承し、同様に実施することは、次のとおりです。あなたの出力ウィンドウで
public string Error
{
get
{
return string.Empty;
}
}
public string this[string columnName]
{
get
{
if (columnName == "MyInteger")
{
if (MyInteger < 0)
{
return "Must be an integer greater than 0!";
}
}
return "";
}
}
を見て – blindmeis