Как запретить обновление формы ,пока не были заполнены все данные

Рейтинг: 0Ответов: 0Опубликовано: 12.02.2023

Есть форма с textbox в wpf, данные из textbox записываются в бд при сохранении,несколько textbox-это айдишники присоединённых таблиц,данные в них заносятся из datagrid в другой форме,проблема в том, что когда одно поле с id заполнено, при переходе на другую форму и выборе id для другого поля, форма обновляется и предыдущий id с нулевым значением. Как убрать обновление формы при каждой загрузке, чтобы не терять данные или это надо как-то по другому решать

Передача айдишника в таблицу Fields(айдишник записывается на другой форме в textbox)

это загрузка айдишнка в экземпляр класса и вывод в textbox (записывается только что-то одно)

по нажатию на кнопку осуществляется переход на форму с данными из бд, выбираю запись и айдишник заносится в textbox

Проблема решилась занесением всех заполняемых данных в класс и вывода их из класса при загрузке окна

    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;
        }
            
    }

Ответы

Ответов пока нет.