我在WPF和實體框架中顯示dataGrid,第2列有單價列3有數量(第4列有折扣),我想列5將是總結。我的問題是我怎麼能捕捉到第三列和計算的變化總列wpf dataGrid與實體的總計單元
這裏是代碼如何顯示
<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
}
}
我試過幾個方面的數據,但沒有結果
預先感謝幫助
對不起,但我不明白我是怎麼做到的? – user1095549
你如何生成你的實體?你在使用實體框架設計器嗎? – CodeWarrior
是的,與設計師。辦法? – user1095549