Есть DataGrid данные заполняются через биндинг:
<Custom:DataGrid Name="dgMenuProduct" ItemsSource="{Binding Menus}" AutoGenerateColumns="False">
<Custom:DataGrid.Columns>
<Custom:DataGridComboBoxColumn x:Name="ColProduct" SelectedValueBinding="{Binding Path=Product}" ItemsSource="{Binding}"
SelectedValuePath="Prod" DisplayMemberPath="Prod" Header="Продукт" Width="4*"/>
<Custom:DataGridTextColumn Binding="{Binding Path=CenaProd}" Header="Цена" Width="2*"/>
<Custom:DataGridCheckBoxColumn Binding="{Binding Path=Subvencia}" Header="Субвенция" Width="2*"/>
<Custom:DataGridTextColumn IsReadOnly="False" Binding="{Binding Path=KolvoProd}" Header="Количество" Width="2*"/>
<Custom:DataGridComboBoxColumn x:Name="ColTip" SelectedValueBinding="{Binding Path=TipPP}" ItemsSource="{Binding}"
SelectedValuePath="Tip" DisplayMemberPath="Tip" Header="Тип" Width="3*"/>
</Custom:DataGrid.Columns>
</Custom: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<ProductPit> 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;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости