私は ICSharpCode の AvalonEdit テキスト エディタを使用しており、ドキュメント リストの後に TabControl にさまざまな TextEditor コントロールを表示しています。
TabControl の WPF コード:
<TabControl
Grid.Row="0"
ItemsSource="{Binding OpennedFiles, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Data.Name"
SelectedItem="{Binding SelectedFile, UpdateSourceTrigger=PropertyChanged}">
<TabControl.ContentTemplate>
<DataTemplate>
<AE:TextEditor ShowLineNumbers="True" FontFamily="Consolas" Unloaded="TextEditor_Unloaded" FontSize="16" Loaded="TextEditor_Loaded" Document="{Binding Document}" SyntaxHighlighting="Python" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
私の問題は、選択したタブを変更すると、以前に選択したドキュメントのキャレット オフセットが 0 にリセットされることです。これは非常に面倒です。
テキスト エディターのキャレット オフセット プロパティをバインドしようとしましたが、依存プロパティではなく、動作するかどうかもよくわからないため、付属の依存プロパティを作成する勇気がありませんでした。
ドキュメントがタブ選択時にテキストエディターにリロードされ、キャレットオフセットがTextAreaに依存しているように見えるため、デフォルト値に戻ることが原因であると思われますが、まだわかりませんこれを回避する方法について。
ヒントはありますか?