好的,所以我有一个名为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);

        }
    }