Because the Xaml
has no idea you added a new TabItem
Change your List<T>
to ObservableCollection<T>
, ObservableCollection's will notify the UI of any changes to the collection(Add, remove etc).
Example:
class Model : INotifyPropertyChanged
{
private ObservableCollection<TabItem> _tabitems = new ObservableCollection<TabItem>();
public Model()
{
TabItem myItem = new TabItem();
myItem.Header = "test";
myItem.Content = "test";
TabItems.Add(myItem);
}
public ObservableCollection<TabItem> TabItems
{
get
{
return _tabitems;
}
set
{
_tabitems = value;
OnPropertyChanged("TabItems");
}
}
public bool Execute()
{
TabItem myItem = new TabItem();
myItem.Header = "test";
myItem.Content = test;
TabItems.Add(myItem);
return true;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}