#c# #wpf
#c# #wpf
Вопрос:
Значение передается и добавляется, но когда я захожу в это окно, оно не добавляется в список. Значение добавляется в коллекцию, но не в поле списка. Я обнаружил, что если я попытаюсь добавить другое значение, оно перезапишет исходное (счетчик всегда равен 1, изображение получено при третьей передаче строки). При объяснении можете ли вы объяснить это легко, потому что я только новичок. Все, что я хочу выяснить в первую очередь, это вывести его на печать в поле списка.
Окно 1
ObservableCollection<string> Modules = new ObservableCollection<string>();
public void PassedThroughWindow(string _module)
{
string moduleName = _module;
//Data not being printed to the listbox
Modules.Add(moduleName.ToString());
lbxTimeTable.ItemsSource = StringModules;
}
Окно 2
string ModuleName = TbxModuleName.Text;
//Passing Data To Main Window
MainWindow main = new MainWindow();
main.PassedThroughWindow(ModuleName);
Комментарии:
1. Я анализировал строку для другого экземпляра формы. Спасибо за помощь, ребята 🙂
2. Оба окна должны использовать экземпляр common view model (в их свойстве DataContext). Найдите MVVM в Интернете.
Ответ №1:
Вы передаете значение в новый экземпляр вашего mainwindow, а не в существующий
MainWindow main = new MainWindow();
main.PassedThroughWindow(ModuleName);
Вот почему оно не отображается в вашем существующем MainWindow
Ответ №2:
ObservableCollection<string> Modules = new ObservableCollection<string>();
public MainWindow()
{
//Assign item source only once and try adding items it should help
lbxTimeTable.ItemsSource = Modules;
}
public void PassedThroughWindow(string _module)
{
string moduleName = _module;
//Data not being printed to the listbox
//Change stringModules to Modules which is defined above
Modules.Add(moduleName.ToString());
}
Также еще один момент, где определены StringModules?. Определите только один экземпляр mainwindow и передайте данные.
Комментарии:
1. Модуль String — это то, как он назывался изначально. Я изменил на модули