C# 在WPF数据网格中引用单元格
我有一个WPF数据网格,如下所示: 我的问题是:C# 在WPF数据网格中引用单元格,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我有一个WPF数据网格,如下所示: 我的问题是: 如何根据价格*数量计算“总计”列 是否有一种方法可以自动调整表格的列宽,使其看起来更美观 我的cs代码如下: public partial class pgCheckout : Page { ObservableCollection<SaleItem> items = new ObservableCollection<SaleItem>(); public pgCheckout() {
public partial class pgCheckout : Page {
ObservableCollection<SaleItem> items = new ObservableCollection<SaleItem>();
public pgCheckout() {
InitializeComponent();
dgItems.ItemsSource = items;
}
private void btnRemove_Click(object sender, RoutedEventArgs e) {
}
private void btnAdd_Click(object sender, RoutedEventArgs e) {
using (var db = new PoSEntities()) {
var query = from i in db.Items
where i.ItemID.Equals(txtItemID.Text.Trim())
select i;
var itm = query.FirstOrDefault();
if (itm == null) {
lblErr.Content = "Invalid Item";
}
else {
lblErr.Content = "";
items.Add(new SaleItem() {
Num = items.Count + 1,
ItemID = itm.ItemID,
Name = itm.Name,
Price = itm.Price,
Quantity = 1,
Total = 1 //Need to be Price * Quantity
});
}
}
}
}
class SaleItem {
public int Num { get; set; }
public string ItemID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public decimal Total { get; set; }
}
公共部分类签出:第页{
ObservableCollection items=新的ObservableCollection();
公共签出(){
初始化组件();
dgItems.ItemsSource=项目;
}
私有void btnRemove_单击(对象发送者,路由目标){
}
私有无效btnAdd_单击(对象发送者,路由目标e){
使用(var db=new PoSEntities()){
var query=来自db.Items中的i
其中i.ItemID.Equals(txtItemID.Text.Trim())
选择i;
var itm=query.FirstOrDefault();
如果(itm==null){
lblErr.Content=“无效项”;
}
否则{
lblErr.Content=“”;
items.Add(新的SaleItem(){
Num=items.Count+1,
ItemID=itm.ItemID,
Name=itm.Name,
价格=itm.价格,
数量=1,
总计=1//需要为价格*数量
});
}
}
}
}
类别销售项目{
公共int Num{get;set;}
公共字符串ItemID{get;set;}
公共字符串名称{get;set;}
公共十进制价格{get;set;}
公共整数数量{get;set;}
公共十进制总数{get;set;}
}
提前感谢。您需要像这样为您的模型安装INotifyPropertyChanged接口
class SaleItem : INotifyPropertyChanged
{
public int Num { get; set; }
public string ItemID { get; set; }
public string Name { get; set; }
private decimal price;
public decimal Price
{
get { return price; }
set
{
this.price = value;
OnPropertyChanged("Total");
}
}
private decimal quantity;
public decimal Quantity
{
get { return quantity; }
set
{
this.quantity = value;
OnPropertyChanged("Total");
}
}
public decimal Total
{
get { return Price * Quantity; }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}