C# WPF中的RichTextBox文本内容更改事件

C# WPF中的RichTextBox文本内容更改事件,c#,wpf,events,richtextbox,C#,Wpf,Events,Richtextbox,我的应用程序中有一个RichTextBox。我需要处理此RichTextBox的TextChange事件。文本可以更改的情况有两种: 用户在文本框中键入了一些内容。RichTextBox内容已更改 在程序内部,我根据用户执行的不同操作更改RichTextBox的内容。在这种情况下,用户没有在RichTextBox中键入任何新内容。我只是在后台更改RichTextBox内容 如何区分这两个事件 void SegFileDataContentChanged(object sender, EventA

我的应用程序中有一个RichTextBox。我需要处理此RichTextBox的TextChange事件。文本可以更改的情况有两种:

  • 用户在文本框中键入了一些内容。RichTextBox内容已更改
  • 在程序内部,我根据用户执行的不同操作更改RichTextBox的内容。在这种情况下,用户没有在RichTextBox中键入任何新内容。我只是在后台更改RichTextBox内容
  • 如何区分这两个事件

    void SegFileDataContentChanged(object sender, EventArgs e)
    {
        if (EditorTabcontrol.SelectedIndex != -1)
        {
            try
            {
                TabItem selectedTabItem = tabItemList.ElementAt(EditorTabcontrol.SelectedIndex);
    
                SegmentFile selectedSegFile = segFileList.ElementAt(EditorTabcontrol.SelectedIndex);
    
                if (!selectedTabItem.Header.ToString().Contains('*'))
                    selectedTabItem.Header = selectedTabItem.Header + "*";
    
                selectedSegFile.DataContentChanged = true;
    
                //update dataContent to reflect lastest rtb.text
                RichTextBox selectedRTB = rtbList.ElementAt(EditorTabcontrol.SelectedIndex);             
    
                selectedSegFile.DataContent = new TextRange(selectedRTB.Document.ContentStart, selectedRTB.Document.ContentEnd).Text;                    
    
            }
            catch (Exception ex)
            {
                MessageBox.Show("SegFileDataContentChanged", "SegFileDataContentChanged Error", MessageBoxButton.OK);
                MessageBox.Show("Unknown Exception Thrown: " + "\n  Type:    " + ex.GetType().Name + "\n  Message: " + ex.Message);
            }
        }
        else
        {
            MessageBox.Show("No file open", "No File Open Error", MessageBoxButton.OK);
        }
    }