我有一个像这样的 WPF TabControl:
XAML:
<TabControl Name="myTabControl" ItemsSource="{Binding Main.TabItems, UpdateSourceTrigger=PropertyChanged}" />
现在我想在运行时添加 TabItems。所以这是我的模型。
C#:
class Model() : INotifyPropertyChanged
{
private List<TabItem> _tabitems = new List<TabItem>();
public Model()
{
TabItem myItem = new TabItem();
myItem.Header = "test";
myItem.Content = "test";
_tabitems.Add(myItem);
TabItems = _tabitems;
}
public List<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);
TabItems = _tabitems;
return true;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
如果我启动我的程序,构造函数中的代码运行良好。我在 TabControl 中有一个 TabItem。但是,如果我从命令执行我的函数 Execute(),那么什么也不会发生。如何解决我可以从构造函数中添加一个 tabitem 的问题。如果我在构造函数中启动该函数,那么它就可以工作。