У меня есть программа, в которую я загружаю данные из CSV и сохраняю их в список.Затем я загружаю их в список и в текстовые поля.Я создал кнопку «Новый», чтобы добавить новый элемент в список и показать новый элемент в списке и текстовых полях.Но каждый раз, когда я создаю новый элемент, я удаляю свой предыдущий список.Может ли кто-нибудь помочь мне, как добавить новый элемент и сохранить все мои данные?
Второе окно:
public partial class New : Window
{
AddDataFromImport data = new AddDataFromImport();
private string centName;
private string centCode;
private string centDesc;
public New()
{
InitializeComponent();
}
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
Validate();
MainWindow mainWindow = new MainWindow(centName,centCode,centDesc);
mainWindow.Show();
this.Close();
}
}
Второе окно XML:
<Button x:Name="BtnSave" Content="Save" Grid.Row="5" Grid.Column="1" Width="150" Height="30" Click="BtnSave_Click"></Button>
Главное окно:
public partial class MainWindow : Window
{
public AddDataFromImport meetingData = new AddDataFromImport();
private Centre selectedCentre = null;
private Room selectedRoom = null;
public MainWindow()
{
InitializeComponent();
}
public MainWindow(string nameNewCent, string codeNewCent, string descNewCent) : this()
{
Centre cent = new Centre(nameNewCent, codeNewCent, descNewCent);
meetingData.MeetingCentres.Add(cent);
ListOfCentres.ItemsSource = meetingData.MeetingCentres;
}
private void SelectCheck(object sender, EventArgs e)
{
MyCheckBox.IsChecked = true;
}
// Load import
private void ImportData_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog openFileDlg = new Microsoft.Win32.OpenFileDialog();
Nullable<bool> result = openFileDlg.ShowDialog();
if (result == true)
{
var filename = openFileDlg.FileName;
meetingData.CreateDataStrucuturtes(filename);
ListOfCentres.ItemsSource = meetingData.MeetingCentres;
}
}
// Fill center columns
public void ListOfCentres_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
selectedCentre = (Centre)ListOfCentres.SelectedItem;
if (selectedCentre != null)
{
TBoxName.Text = selectedCentre.Name;
TBoxCode.Text = selectedCentre.Code;
TBoxDescription.Text = selectedCentre.Description;
}
}
// Fill rooms from selected centre
private void TBoxName_TextChanged(object sender, TextChangedEventArgs e)
{
if ((Centre)ListOfCentres.SelectedItem != null)
ListOfRooms.ItemsSource = ((Centre)ListOfCentres.SelectedItem).RoomsInCentre;
}
// Create new centre
private void BtnNew_Click(object sender, RoutedEventArgs e)
{
New newWindow = new New();
newWindow.Show();
}
}
Главное окно XML:
<StackPanel HorizontalAlignment="Left" Height="120" Margin="10,51,0,0" VerticalAlignment="Top" Width="340">
<ListBox x:Name="ListOfCentres" DisplayMemberPath="CenterName" Height="119" HorizontalAlignment="Left" Width="340" ItemsSource="{Binding Path=Centres}" SelectionChanged="ListOfCentres_SelectionChanged"/>
</StackPanel>
<Button x:Name="BtnNew" Content="New" Width="70" Margin="0,5,0,0" Height="21" Click="BtnNew_Click"></Button>
![WPF](https://i.stack.imgur.com/j7ehc.png)