Получение родителя новой вкладки после добавления в связанный TabControl (mvvm)
Я добавляю кнопку закрытия на мои вкладки, используя следующее руководство:
http://www.codeproject.com/Articles/84213/How-to-add-a-Close-button-to-a-WPF-TabItem
Это стало проблемой, потому что событие использует «родитель» добавленной вкладки, чтобы удалить эту вкладку из tabcontrol. Я связываю элемент управления tab с помощью mvvm, поэтому свойство parent, по-видимому, не устанавливается и дает мне исключение нулевой ссылки для родителя, когда событие пытается удалить из него.
Вот привязка, чтобы вы поняли:
<TabControl Name="tabControl" Margin="0,22,0.2,-5.2" ItemsSource="{Binding Tabs}" Background="#FF4C76B2"/>
Вот где вкладки добавляются.
private void AddTab(object tabName)
{
ClosableTab newTab = new ClosableTab();
newTab.Title = "title?";
//newTab.Header = tabName;
TextBox test = new TextBox();
test.Text = "CONTENT (" + tabName + ") GOES HERE";
newTab.Content = test;
Tabs.Add(newTab);
OnPropertyChanged("Tabs");
}
Вот событие, где происходит нулевая ссылка:
void button_close_Click(object sender, RoutedEventArgs e)
{
((TabControl)this.Parent).Items.Remove(this);
}
На мой взгляд, есть два варианта:
попробуйте найти другой способ удалить вкладку (без родительского свойства)попытаться найти способ как-то установить родительское свойство (что не может быть сделано напрямую, оно выдает ошибку компилятора)