Мне нужно создать простую систему инвентаризации без базы данных.
Однако мои формы продолжают сбрасываться до значений по умолчанию после их скрытия и отображения.
Я несколько раз пытался реструктурировать свой код и использовать this.visibility вместо this.show
//Code for my main window
public Main()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
AddTransactionWindow AddTransWindow = new AddTransactionWindow();
AddTransWindow.Show();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Inventory OpenInventory = new Inventory();
OpenInventory.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;
}
// Код для моего инвентарного окна
public partial class Inventory : Window
{
public Inventory()
{
InitializeComponent();
}
private void Save_Click(object sender, RoutedEventArgs e)
{
bool positiveNumbericalInput = true;
string selectedJewelry;
int amountAdded;
//object selectedJewelry = cmbTypeofJewelry.SelectedItem;
//Object selectedItem = cmbTypeofJewelry.SelectedItem;
selectedJewelry = cmbTypeofJewelry.Text;
if (txtAmount.Text == "")
{
positiveNumbericalInput = false;
txtAmount.Text = "0";
}
amountAdded = Convert.ToInt32(txtAmount.Text);
if (positiveNumbericalInput)
{
int existingAmount;
switch (selectedJewelry)
{
case "Diamond":
existingAmount = Convert.ToInt32(amntDiamond.Text);
existingAmount = existingAmount + amountAdded;
amntNecklace.Text = existingAmount.ToString();
break;
case "Pink Diamond":
existingAmount = Convert.ToInt32(amntPinkDiamond.Text);
existingAmount = existingAmount + amountAdded;
amntEarrings.Text = existingAmount.ToString();
break;
case "Sapphire":
existingAmount = Convert.ToInt32(amntSapphire.Text);
existingAmount = existingAmount + amountAdded;
amntRing.Text = existingAmount.ToString();
break;
case "Emerald":
existingAmount = Convert.ToInt32(amntEmerald.Text);
existingAmount = existingAmount + amountAdded;
amntBracelet.Text = existingAmount.ToString();
break;
}
//MessageBox.Show("Selected Item Text: " + selectedJewelry + "\n" + "Amount Added: " + amountAdded);
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
cmbTypeofJewelry.Items.Add("Diamond");
cmbTypeofJewelry.Items.Add("Pink Diamond");
cmbTypeofJewelry.Items.Add("Sapphire");
cmbTypeofJewelry.Items.Add("Emerald");
}
private void Return_Click(object sender, RoutedEventArgs e)
{
this.Hide();
OpenMain.Show();
}
private void cmbTypeofJewelry_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
}
}
Этот код может изменить текст в текстовых блоках, но после его скрытия и повторного отображения. Текст по умолчанию имеет свои первоначальные значения.