ぽにょろん

思いついたこととメモ

AvalonEditをTabControlでつかう

自作ツールのTabControlのContentにAvalonEditを導入しようとしたところ、
思いの外苦戦したので記録しておきます。

目次

環境

  • C# (.NET Framwork 3.5)
  • WPF
  • VS2015
  • AvalonEdit version="5.0.3"

問題点

  • TabControlでTabを切り替えた時に、AvalonEdithへの入力値が引き継がれてしまう
    XAMLでTabItemを明示的に記述した場合は再現しない。
    ContentTemplateのDataTemplateを使って動的にタブを制御すると再現する。

あぁ、そういうことかって感はありますよね。

  • イメージ
    f:id:kowill:20160614164154p:plain

解決

わりと無理やりですが、TextプロパティをBindして、書き換えるようにしました。
こんな感じのコントロールを作ってしまいます。

gist.github.com

f:id:kowill:20160614165548p:plain

何か見落としている気がしないでもないですけど、意図した事ができるようになったので良し。
ちゃんとした解決法知っている人がいたら教えてください。