WPF MVVM Datagrid 双向绑定

WPF MVVM Datagrid Two Way Binding

我使用 IPropertyChanged 接口将 List 和 DataGrid 绑定到它。我希望 DataRowCells 中的更改反映在 object 属性中。我还在 DataGrid 和 Textbox 中实现了 CheckBox,我希望 TextBox 中的文本更新所有选定(选中)行的特定列单元格。所以我必须根据一个文本框更改每个选定行的一个单元格,并且该更改应保存在绑定 object 中。例如,我希望对于所有选定的行单元格 SUPPLIER_ID 取 TextBox 文本的值,并且该值应该反映在绑定 objects prop SUPPLIER_ID

我在 ViewModel 中的 Collection:

private List<Article> articlesFalseCatalogGroup;

    public List<Article> ArticlesFalseCatalogGroup
    {
        get { return articlesFalseCatalogGroup; }
        set
        {
            articlesFalseCatalogGroup = value;
            OnPropertyChanged("ArticlesFalseCatalogGroup");
        }
    }

这是 object 的一个道具:

public class Article: INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    public void OnPropertyChanged(string propname)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propname));
    }

    #region Standard fields

    private string _SUPPLIER_AID;

    public string SUPPLIER_AID
    {
        get { return _SUPPLIER_AID; }
        set
        {
            _SUPPLIER_AID = value;
            OnPropertyChanged("SUPPLIER_AID");
        }
    }

XAML数据网格:

<DataGrid Grid.Column="1"
              AutoGenerateColumns="True"
              ItemsSource="{Binding ArticlesFalseCatalogGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Select" IsThreeState="True" />
        </DataGrid.Columns>
    </DataGrid>

添加具有双向绑定的列定义:

<DataGridTextColumn Binding="{Binding SUPPLIER_AID, Mode=TwoWay"} Header="SUPPLIER_AID" />