は、私は、次のクラスがありますフォーム上のテキストボックスコントロールがBindingSource
介して、このクラスのインスタンスにバインドされラムダ式を使ってプロパティを更新するにはどうすればいいですか?
public class MyClass
{
public int? Field1 { get; set; }
public int? Field2 { get; set; }
}
を、データソースは、OnValidated
イベントに更新されます。テキストボックスが空の場合しかし、それがバインドのプロパティが更新されていない
(前回値が再び表示されている):
だから、私は次のように追加したコントロールOnValidating
イベントで:
int value;
bool ok = int.TryParse(((TextBox)sender).Text, out value);
if (!ok)
{
myClassInstance.Field1 = null;
}
質問:
が
BindingSource
の正常な動作を超えるときの値は空ですか?OnValidating
イベントで呼び出せる汎用メソッドを使用することはできますか?ような何か:オブジェクトインスタンスが参照されていないためOnValidatingMethod((TextBox)sender, x => x.Field1);
上記のコード行は明らかに動作しません。しかし、私はそれのようなものが可能かどうか疑問に思っていましたか?クラスへの拡張かもしれません:
myClassInstance.SetProperty(((TextBox)sender).Text, x => x.Field1);
説明していただきありがとうございます。いつものように、すばらしい答えです! –