Проблема: у меня есть 2 формы. В одной из них находится ListBox, а в другой форме - кнопка. Я хочу, чтобы элемент ListBox добавлялся, когда я запускаю кнопку во второй форме. Пробовал его с помощью следующего кода, расчет работает, но по какой-то причине он не добавляет элемент в ListBox.Невозможно добавить элемент ListBox из другой формы
Форма с ListBox:
public void addList(string sName)
{
listBox.Items.Add(sName + " " + Annuitätenrechner.zgErg.ToString("0.00") + "€" + " " + Annuitätenrechner.zmErg.ToString("0.00") + "€");
}
Форма с кнопкой:
public void bAdd_Click(object sender, RoutedEventArgs e)
{
string sMonate = monate2.Text;
string sZins = zins2.Text;
string sName = name2.Text;
if ((monate2.Text == "" && zins2.Text == "") || (sMonate.Contains('-')) || (sZins.Contains('-')))
{
MessageBox.Show("Die eingegebenen Werte müssen größer als 0 sein.");
}
else
{
Daten data = new Daten();
data.AnBetrag = int.Parse(betrag2.Text);
data.AnMonate = int.Parse(monate2.Text);
data.AnZins = double.Parse(zins2.Text)/100;
GlobaleDaten.AlleAnnuitaeten.Add(data);
Annuitätenrechner annuitätenrechner = new Annuitätenrechner();
annuitätenrechner.AnRechner(data);
MainWindow mainwindow = new MainWindow();
mainwindow.addList(sName);
}
}
Не стесняйтесь спрашивать, если вам нужна дополнительная информация.
'MainWindow MainWindow = новый MainWindow()' создает новый экземпляр вашего класса MainWindow. Вы, конечно же, хотите вызвать метод в существующем экземпляре. Вы можете получить его, например. по "var mainWindow = (MainWindow) Application.Current.MainWindow;'. Однако подумайте о создании класса модели представления, который совместно используется обоими окнами. – Clemens
наилучшим подходом является делегат. –
@ Clemens отлично работал, спасибо. :) –