簡體   English   中英

如何在XAML中將事件處理程序添加到C#AvalonEdit Caret PositionChanged事件

[英]How to add event handler to a C# AvalonEdit Caret PositionChanged event in xaml

我在xaml中將數據模板定義為:

<DataTemplate>
<avalonEdit:TextEditor 
    Name="xmlEditor"
    SyntaxHighlighting="XML"
    FontFamily="Consolas"
    FontSize="10pt"
/>
</DataTemplate>

我需要向其添加ICSharpCode.AvalonEdit.TextEditor.TextArea.Caret.PositionChanged事件。 我怎樣才能做到這一點?

您無法在xaml中訪問它,而必須在后面的代碼中進行設置。

您可以這樣做:

AvalonTextEditorControl.TextArea.Caret.PositionChanged += new EventHandler(
    (sender, args) => {
         // do some stuff
    }
);

或者,您可以根據需要使用單獨的事件函數:

AvalonTextEditorControl.TextArea.Caret.PositionChanged += TextEditorCaret_PositionChanged;

private void TextEditorCaret_PositionChanged(object sender, EventArgs e)
{
    // do some stuff
}

更新資料

如果您想在XAML中使用它,可能是因為您的DataTemplate。 您必須自己實現。 我覺得比您有兩個選擇:

  1. 從GitHub上的ICSharpCode.AvalonEdit獲取源代碼,並修改TextEditor類。 只需添加一個EventHandler並在TextArea.Caret.PositionChanged事件中調用它即可。
  2. 創建您自己的用戶控件,該控件繼承自ICSharpCode.AvalonEdit TextEditor並添加EventHandler,如選項1所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM