1

Textbox があり、そのLostFocusイベントで、SaveWeight()いくつかの条件に基づいて値を保存するために呼び出される関数があります。その関数をプログラムでトリガーする必要があります。

たとえばOnClearButClicked、テキストボックスの値がクリアされる関数があります。したがって、クリアした後、関数を呼び出す必要がありSaveWeightます。しかし、これは LostFocus イベントであるため、テキスト ボックスのフォーカスを手動で設定する必要がありUnfocusedますSaveWeight()

private void OnClearButClicked(object sender, RoutedEventArgs e) {
    weightTBox.Text = "";
    weightTBox.Focus(Windows.UI.Xaml.FocusState.Unfocused);
}

しかし、weightTBox.Focus(Windows.UI.Xaml.FocusState.Unfocused);スローはArgumentException. 私のアプローチは間違っていますか?要素に を設定しFocusStateて、イベントをトリガーすることはできますか? または、私が行方不明になっている他のものはありますか?

4

1 に答える 1

1

引数として null を渡してメソッドを呼び出すだけではどうですか?

SaveWeight(null, null);

私には、UI にフォーカスを設定することは、コード ベースの関心の分離に大きく違反しているように思えます。

于 2012-08-22T08:50:12.910 に答える