簡體   English   中英

如何將項目添加到不同窗口的列表框? WPF

[英]How to add item to listbox of a different window? WPF

在我的 MainWindow(見圖片)中,我有一個列表框和一個名為 btnToevoegen 的按鈕,它打開我的第二個窗口(見第二個圖片),在該窗口中,一個名為 oToevoegen 的類獲取 3 個整數的信息。

https://i.stack.imgur.com/WtSkz.png

https://i.stack.imgur.com/u1wga.png

現在如您所見,當用戶在第二個窗口中輸入完信息后,他可以按下“volgende”(荷蘭語中的“next”)按鈕。 查看代碼

        public void btnVolgende_Click(object sender, RoutedEventArgs e)
        {
            MainWindow wdwMain = new MainWindow();
            Toevoegen oToevoegen = new Toevoegen();

            wdwMain.lstFinanceInfo.Items.Add(oToevoegen);

            wdwMain.lstFinanceInfo.Items.Refresh();

            this.Close();
        }

當按下該按鈕時,我希望將該類添加到名為 lstFinanceInfo(在我的 mainWindow 上)的 lstBox 中,但我不知道如何添加。 我試過的方法不起作用。

您在該代碼中有幾個問題。

當你做

MainWindow wdwMain = new MainWindow();

這將創建一個新的 MainWindow 實例。 然后你沒有 .Show() this 所以它只是掛在內存中。 不過,您大概已經有一個 mainwindow 實例。 由於這是 Mainwindow 的另一個實例而不是可見的實例,因此您可以對它進行任何您喜歡的操作,並且不會有任何明顯的變化。

在技​​術上可以公開控制 - 但是 - 這是不好的做法。 不要那樣做。

向 MainWindow 添加一個公共方法,例如:

    public void AddItem (Toevoegen tv)
    {
        lstFinanceInfo.Items.Add(tv);
    }

因為它是公開的,所以您可以從其他類(例如第二個窗口)調用它。

您需要做的就是獲取引用並調用您添加的方法。 應用程序有一個 mainwindow 屬性,其中將包含該屬性,因此將其取出並轉換為 Mainwindow:

        MainWindow mw = Application.Current.MainWindow as MainWindow;
        mw.AddItem(oToevoegen);

你為什么不試試 wdwMain.lstFinanceInfo.Items.Add(oToevoegen.Text); 但首先要確保 oToevoegen 有一個 Text 屬性(它有你想要顯示的文本)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM