以编程方式设置wpf datagrid单元格值

以编程方式设置wpf datagrid单元格值,wpf,datagrid,Wpf,Datagrid,我有一个简单的datagrid,有两列,ProductCode和Description。 当用户编译第一列中的ProductCode并移动到下一列时,程序应使用Products表中的产品描述编译描述单元格。 最好的方法是什么 最好的方法是什么 定义一个具有两个属性的类,ProductCode和Description,用于实现接口。然后,您可以在ProductCode属性的setter中查找产品的描述,例如: public class Product : INotifyPropertyChange

我有一个简单的datagrid,有两列,ProductCode和Description。
当用户编译第一列中的ProductCode并移动到下一列时,程序应使用Products表中的产品描述编译描述单元格。
最好的方法是什么

最好的方法是什么

定义一个具有两个属性的类,
ProductCode
Description
,用于实现接口。然后,您可以在
ProductCode
属性的setter中查找产品的描述,例如:

public class Product : INotifyPropertyChanged
{
    private string _productCode;
    public string ProductCode
    {
        get { return _productCode; }
        set
        {
            _productCode = value;
            NotifyPropertyChanged();
            LookupProduct();
        }
    }

    private string _description;
    public string Description
    {
        get { return _description; }
        set { _description = value; NotifyPropertyChanged(); }
    }

    private void LookupProduct()
    {
        //loop up product based on _productCode here
        //...and set the Description property:
        Description = "...";
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}

当然,您还应该将
DataGrid
ItemsSource
属性设置或绑定到一个
IEnumerable

来处理数据网格中每一行所代表的对象内部的数据更改。好的,但是处理数据更改的正确事件是什么呢?这确实是我所做的,但PropertyChanged事件仅在用户更改行并将该行添加到数据源时触发。我希望在编译产品代码后,当光标从productcode单元格退出并转到同一行中的description单元格时,即使尚未添加行,也能让用户看到产品描述row@MassimoSpinelli在XAML代码中,是否将每个datagrid列的UpdateSourceTrigger设置为“OnPropertyChanged”?@PaulGibson这是拼图的最后一块!非常感谢。