Sto passando un elenco di clienti tramite il costruttore. Quindi è un database per un ListBox. Dispongo anche di un database per consentire la modifica del nome del cliente, aggiornare automaticamente il ListBox e l'elenco dei clienti, il che è molto bello.Come annullare le modifiche apportate tramite Databinding?
Tuttavia, desidero che le modifiche non vengano mantenute se l'utente fa clic sul pulsante Annulla. Sto dicendo al programma di impostare l'elenco dei clienti a quello vecchio, ma non funziona, quando apro di nuovo la finestra il ListBox mostra i nomi dei clienti aggiornati piuttosto che i vecchi nomi.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
namespace Bingding_Test
{
public partial class Form_Customers : Form
{
List<Customer> customers;
List<Customer> old_customers;
BindingSource bs = new BindingSource();
public Form_Actors(List<Customer> _customers)
{
InitializeComponent();
customers = _customers;
old_customers = new List<Customer>(_customers);
bs.DataSource = customers;
listBox1.DataSource = bs;
listBox1.DisplayMember = "Name";
txtb_name.DataBindings.Add("Text", bs, "Name");
}
void Btn_cancelClick(object sender, EventArgs e)
{
actors = old_customers;
this.Close();
}
void Btn_saveClick(object sender, EventArgs e)
{
this.Close();
}
}
}
Qualcuno sa cosa posso fare per assicurarmi che tutte le modifiche non vengano salvate quando faccio clic sul pulsante Annulla?
Quando si dice bind manualmente, vuoi dire di non usare affatto il databinding? Ad esempio -> textBox1.Text = variable.strName. – TheScholar
@TheScholar: sembra che mi sia sbagliato, cioè puoi implementare l'annullamento con DataBindings - vedi la mia modifica. – Neolisk
Grazie Neolisk! Analizzerò questo aspetto e vedrò se risolve il mio problema: D – TheScholar