私はこのようなWPFTabControlを持っています:
XAML:
<TabControl Name="myTabControl" ItemsSource="{Binding Main.TabItems, UpdateSourceTrigger=PropertyChanged}" />
次に、実行時にTabItemを追加します。これが私のモデルです。
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に1つのTabItemがあります。しかし、コマンドから関数Execute()を実行しても、何も起こりません。コンストラクターからタブアイテムを追加できるという問題をどのように解決できますか。コンストラクターで関数を開始すると、機能します。