Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

Значение DataGridTextColumn в зависимости от выбора DataGridComboBoxColumn

Есть DataGrid данные заполняются через биндинг:

Содержимое выпадающего списка берется из файла xml и загружается в класс:
public class ProductPit { public ProductPit(string prod, double cena, string ediz) { Prod = prod; Cena = cena; EdIz = ediz; }
public string Prod { get; set; } public double Cena { get; set; } public string EdIz { get; set; } }
Сам Datagrid биндится из класса:
public class Menu { public Menu(string product, double cenaprod, bool subvencia, double kolvoprod, string tippp) { Product = product; CenaProd = cenaprod; Subvencia = subvencia; KolvoProd = kolvoprod; TipPP = tippp; } // Наименование продукта - будет задаваться в DataGridComboBoxColumn, заполненного List months public string Product { get; set; } // Цена продукта - будет задаваться в DataGrid, в соответствии с выбранным продуктом питания public double CenaProd { get; set; } public bool Subvencia { get; set; } // Количество продукта питания - будет задаваться в DataGrid вручную public double KolvoProd { get; set; } public string TipPP { get; set; } }
Как сделать так чтобы при выборе значения в выпадающем списке первого столбца, во второй столбец подставлялось соответствующее значение из класса ProductPit?


Ответ

Вам нужно переопределить сеттер Product в классе Menu
string product; public string Product { get => product; set { product = value; CenaProd = ProductPits // - это ваша коллекция, содержащая все ProductPit .FirstOrDefault(pp => pp.Prod == product) .Cena; } }
Хотя, я считаю, более правильным было бы хранить в классе Menu ссылку на конкретный ProductPit, а Product и CenaProd брать уже из него:
public ProductPit ProductPit { get; set; } public string Product => ProductPit.Prod; public double CenaProd => ProductPit.Cena;

Комментариев нет:

Отправить комментарий