Похоже, вы хотите продолжить работу с шаблоном MVC и представить компонент "Модель", который используется двумя вашими представлениями. Модель будет инициализирована / обновлена с использованием вашего DataAccessClass. Каждая форма (или представление) должна иметь ссылку на модель. Я бы не советовал использовать сериализацию, поскольку вы просто совместно используете объект C # в памяти в одном и том же процессе между двумя различными формами.
Например:
public class MyFirstView : Form
{
private ModelClass m_model;
public MyFirstView(ModelClass model)
{
m_model = model;
m_model.OnDataRefresh += this.Model_OnDataRefresh;
}
}
public class MySecondView : Form
{
private ModelClass m_model;
public MySecondView(ModelClass model)
{
m_model = model;
m_model.OnDataRefresh += this.Model_OnDataRefresh;
}
}
public class ModelClass
{
private DataAccessClass m_dataAccess;
public event EventHandler OnDataRefresh = {}; // fired when data is refreshed
public void EnsureDataIsLoaded(); // queries the db if we haven't already
public void RefreshData(); // refreshes the data from the db
public IList<Entity> GetDataList(); // access to data items
}
Для каждой формы / представления вы можете использовать событие Form.Load, чтобы обновить представление данными модели. Возможно, у вас может быть метод для ModelClass.EnsureDataIsLoaded (), который будет использовать DataAccessClass для запроса базы данных, если вы этого еще не сделали.
И, наконец, если модель меняется, вам нужно каким-то образом отодвинуть изменения в представлениях. Один из способов сделать это - заставить модель генерировать событие при обновлении данных, и каждое представление подписывается на это событие.