我在 WPF 和实体框架中显示 dataGrid,第 2 列有单位价格第 3 列有数量(第 4 列有折扣),我希望第 5 列是摘要。我的问题是如何捕获第三列并计算总列的变化
这是代码如何显示数据
<DataGrid.Columns>
<DataGridComboBoxColumn x:Name="ddd" Header="Expenses" Width="*" SelectedValueBinding="{Binding Path=ExpensesId}" DisplayMemberPath="ExpensesName" SelectedValuePath="ExpensesTypeId"/>
<DataGridTextColumn Header="price" Width="*" Binding="{Binding Path=Expenses.PricePorEach}"/>
<DataGridTextColumn Header="quantity" Width="50" Binding="{Binding Path=Quantity}"/>
<DataGridTextColumn Header="discount" Width="*" Binding="{Binding Path=Discount}"/>
<DataGridTextColumn Header="Total" Width="*" Binding="{Binding Path=Total}"/>
</DataGrid.Columns>
</DataGrid>
ContractorEntities ce = new ContractorEntities();
public MainWindow()
{
InitializeComponent();
BindData();
}
private void BindData()
{
var dataSource = new ObservableCollection<Jobs>(ce.Jobs);
dataSource.CollectionChanged += CollectionChanged;
dg.ItemsSource = dataSource;
dg.DataContext = dataSource;
}
private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
foreach (Jobs job in e.NewItems)
ce.Jobs.Add(job);
else if (e.Action == NotifyCollectionChangedAction.Remove)
foreach (Jobs jobin e.OldItems)
ce.Jobs.Remove(job);
}
private void saveButton_Click(object sender, RoutedEventArgs e)
{
ce.SaveChanges();
}
[NotMapped]
public decimal? Total
{
get
{
return (Price * Quantity) - Discount;
}
set { }
}
public void OnDiscountChanged()
{
base.OnPropertyChanged("Total");//This line is not known
}
public void OnPriceChanged()
{
base.OnPropertyChanged("Total");//This line is not known
}
public void OnQuantityChanged()
{
base.OnPropertyChanged("Total");//This line is not known
}
}
我尝试了几种方法,但没有结果
提前感谢您的帮助