为什么TextChanged火时,一个RichEditBox获得焦点

本文关键字:焦点 RichEditBox 一个 TextChanged 火时 为什么 | 更新日期: 2023-09-27 18:05:15

我有一个RichEditBox在c# Windows运行时应用程序。我已经设置它设置一个布尔标志IsFileUpToDate为false TextChanged如下:

private void OnTextChanged(object sender, RoutedEventArgs e)
{
    if (IsFileUpToDate != false)
    {
        IsFileUpToDate = false;
    }
}

当页面第一次导航到时,IsFileUpToDate应该设置为true。我是这样设置的:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    IsFileUpToDate = true;
}

然而,当页面加载时,RichEditBox立即获得焦点,这似乎导致它将布尔值设置为false,即使文本没有改变。它为什么这样做?我如何重写这些命令,以便可靠地设置布尔值?

为什么TextChanged火时,一个RichEditBox获得焦点

当加载时,RichEditBox的文本将被更改
你可以有另一个标志,以确保它不会改变你的第一次

private void OnTextChanged(object sender, RoutedEventArgs e)
{
    if (IsFirstload)
    {
        IsFirstLoad = false;
        return;
    }
    if (IsFileUpToDate != false)
    {
        IsFileUpToDate = false;
    }
}