1

私は 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に依存しているように見えるため、デフォルト値に戻ることが原因であると思われますが、まだわかりませんこれを回避する方法について。

ヒントはありますか?

4

0 に答える 0