1

我有一个文本框,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 回答