Как запретить обновление формы ,пока не были заполнены все данные
Есть форма с textbox в wpf, данные из textbox записываются в бд при сохранении,несколько textbox-это айдишники присоединённых таблиц,данные в них заносятся из datagrid в другой форме,проблема в том, что когда одно поле с id заполнено, при переходе на другую форму и выборе id для другого поля, форма обновляется и предыдущий id с нулевым значением. Как убрать обновление формы при каждой загрузке, чтобы не терять данные или это надо как-то по другому решать
Проблема решилась занесением всех заполняемых данных в класс и вывода их из класса при загрузке окна
public class AddDoc
{
public static int ID_field { get; set; }
public static int ID_mineral { get; set; }
public static int ID_types { get; set; }
public static int ID_area { get; set; }
public static BitmapImage Picture { get; set; }
public static string Name { get; set; }
public static string Location { get; set; }
public static Nullable<int> Year_of_study { get; set; }
public static string Age { get; set; }
public static string Conditions_of_exploitation { get; set; }
public static string Stocks { get; set; }
public static string Develop { get; set; }
public static string DevelopNot { get; set; }
}
public partial class Addinfo : Window
{
private Fields _currentFields = new Fields();
public Addinfo(Fields selectedFields)
{
if (selectedFields != null)
_currentFields = selectedFields;
_currentFields.ID_field = AddDoc.ID_field;
_currentFields.ID_mineral = AddDoc.ID_mineral;
_currentFields.ID_types = AddDoc.ID_types;
_currentFields.ID_area = AddDoc.ID_area;
_currentFields.Name = AddDoc.Name;
_currentFields.Location = AddDoc.Location;
_currentFields.Year_of_study = AddDoc.Year_of_study;
_currentFields.Age = AddDoc.Age;
_currentFields.Conditions_of_exploitation = AddDoc.Conditions_of_exploitation;
_currentFields.Stocks = AddDoc.Stocks;
_currentFields.Develop = AddDoc.Develop;
_currentFields.DevelopNot = AddDoc.DevelopNot;
DataContext = _currentFields;
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (IDmineral != null)
{
Debug.WriteLine("Меняю айди минерала");
IDmineral.Text = AddDoc.ID_mineral.ToString();
}
if (IDtype != null)
{
Debug.WriteLine("Меняю айди типа минерала");
IDtype.Text = AddDoc.ID_types.ToString();
}
if (IDarea != null)
{
Debug.WriteLine("Меняю айди типа минерала");
IDarea.Text = AddDoc.ID_area.ToString();
}
if (pict != null)
{
Debug.WriteLine("Меняю айди типа минерала");
pict.Source = AddDoc.Picture;
}
if (NameAdd!=null)
{
NameAdd.Text = AddDoc.Name;
}
}
Источник: Stack Overflow на русском