using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace Test { /// /// Логика взаимодействия для WindowRed.xaml /// public partial class WindowRed : Window { Materials vm = new Materials(); //инициализируем вьюмодел Material material; //создаем буферный string newimg; //строка под путь новой картинки public WindowRed(Material idmat) { InitializeComponent(); DataContext = idmat;//заполняем страницу данными материала, который из основной страницы передали material = idmat; CB2.ItemsSource = Base.Ent.MaterialType.Where(x => x.ID < 5).ToList(); CB2.SelectedValue = "ID"; CB2.DisplayMemberPath = "Title"; CB2.SelectedIndex = (int)material.MaterialTypeID - 1; } private void Button_Click(object sender, RoutedEventArgs e) { try { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.DefaultExt = ".jpg"; openFileDialog.Filter = "Изображения |*.jpg;*.png"; var result = openFileDialog.ShowDialog(); if (result == true) { newimg = openFileDialog.FileName; img.Source = BitmapFrame.Create(new Uri(newimg)); } } catch { MessageBox.Show("Выбран невалидный файл"); } } private void Button_Click_1(object sender, RoutedEventArgs e) { try { string str = Cost.Text.Replace(".", ","); material.Title = Title.Text; material.MaterialTypeID = CB2.SelectedIndex + 1; material.CountInStock = Convert.ToInt32(CountInStock.Text); material.Unit = Unit.Text; material.CountInPack = Convert.ToInt32(CountInPack.Text); material.MinCount = Convert.ToInt32(MinCount.Text); material.Cost = Convert.ToDecimal(str); material.Image = newimg; material.Description = Description.Text; material.Cost = Math.Round(material.Cost, 2); if (material.MinCount > 0 && material.Cost > 0) { Base.Ent.SaveChanges(); //сохраняем изменение vm.material = vm.NewMaterial(); //запускаем метод из вьюмодела ClassNavigate.Tyomich.Navigate(new Page1()); } else { throw new Exception("Минимальное количесво и стоимость не могут быть отрицательными"); } } catch (Exception message) { MessageBox.Show("Ошибка данных" + message); } } private void Button_Click_2(object sender, RoutedEventArgs e) { try { Material delite = Base.Ent.Material.FirstOrDefault(x => x.ID == material.ID); Base.Ent.Material.Remove(delite);//удаляем Base.Ent.SaveChanges(); //сохраняем изменения Materials vm = new Materials(); //переинициализируем вьюмодел MessageBox.Show("Удалил"); ClassNavigate.Tyomich.Navigate(new Page1()); } catch { MessageBox.Show("Запись связана. Ее удаление не может быть выполнено"); } } } }