Чтобы узнать о решении, с которым я сейчас остановился: я решил создать подкласс класса TabItem
и сохранить дополнительное свойство, которое ссылается на элемент управления WinForms ScintillaNet:
public class CustomTabItem : TabItem
{
public Scintilla EditorControl
{
get; set;
}
}
И когда я добавляю новые вкладки, я просто проверяю, что EditorControl
установлен на новый экземпляр Scintilla
, который тоже создается:
var editor = ScintillaFactory.Create();
var tab = new CustomTabItem()
{
Header = "Untitled",
Content = new WindowsFormsHost() { Name = "WinformsHost", Child = editor },
EditorControl = editor
};
tabControl.Items.Add(tab);
tab.Focus();
Теперь, когда событие вызывается, я могу запросить выбранную вкладку и as
привести к CustomTabItem
, чтобы получить ссылку на соответствующий редактор:
var editor = (tabControl.Items[tabControl.SelectedIndex] as CustomTabItem).EditorControl
editor.Text = "text here";
Надеюсь, это поможет кому-то еще.