わかりました、それで私は絵を表示するPictureWindowと呼ばれる窓を持っています(私はタブを作ることに関係しないコードを切り取りました)。 TabControlは "itemsTab"という名前です。ボタンを押すだけで、新しいタブを問題なく作成できます。しかし、呼び出されたメソッド内で同じ操作を使用してもうまくいきません。 buttonTab_Clickメソッドを使用すると新しいタブが作成されますが、newTabメソッドは作成されません。
私が見ることができる唯一の本当の違いは送信者とRoutedEventArgsオブジェクトによるものです - これらはここで操作にどのように影響しますか?それとも私が見逃している何か他のものはありますか?
前もって感謝します。
編集するさらに不思議なことに、newTabメソッドは新しいタブを作成しますが、それはPictureWindowコンストラクタメソッドで呼び出された場合に限られます。私が以下を持っているならば、新しいタブが作られます。
public PictureWindow(string current) { InitializeComponent(); newTab(current); }
しかし、他の場所でこのメソッドを呼び出すと、うまくいきません。
public partial class PictureWindow : Window { public PictureWindow(string current) { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { } private void buttonClose_Click(object sender, RoutedEventArgs e) { this.Close(); } private void buttonTab_Click(object sender, RoutedEventArgs e) { TabItem newTab = new TabItem(); newTab.Header = "New Tab!"; itemsTab.Items.Add(newTab); } public void newTab(string current) { TabItem newTab = new TabItem(); itemsTab.Items.Add(newTab); } }
var newWindow = new PictureWindow(fileName); var window = newWindow.getCurrentPictureWindow(); window.newTab(fileName);
getCurrentPictureWindowを使用して正しいウィンドウを選択することで、タブは正常に追加されました。 - Irish Yobbo