当RichEditBox获得焦点时,为什么TextChanged会触发?

时间:2014-05-25 06:22:03

标签: c# windows-runtime textchanged

我在C#Windows运行时应用程序中有一个RichEditBox。我已将其设置为在TextChanged上将布尔标志IsFileUpToDate设置为false,如下所示:

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

首次导航页面时,IsFileUpToDate应设置为true。我这样设置了它:

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

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

1 个答案:

答案 0 :(得分:0)

RichEditBox在加载时更改了文本 你可以有另一面旗帜,以确保它在fisrt时间不会改变你的旗帜

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

    if (IsFileUpToDate != false)
    {
        IsFileUpToDate = false;
    }
}