簡體   English   中英

WPF MVVM Datagrid 雙向綁定

[英]WPF MVVM Datagrid Two Way Binding

我使用 IPropertyChanged 接口將 List<object> 和 DataGrid 綁定到它。 我希望 DataRowCells 中的更改反映在對象屬性中。 我還在 DataGrid 和 Textbox 中實現了 CheckBox,我希望 TextBox 中的文本更新所有選定(選中)行的特定列單元格。 因此,我必須根據一個 TextBox 更改每個選定行的一個單元格,並且該更改應保存在綁定對象中。 例如,我希望所有選定的行單元格 SUPPLIER_ID 取 TextBox 文本的值,並且該值應反映在綁定對象道具 SUPPLIER_ID 中

我在 ViewModel 中的收藏:

private List<Article> articlesFalseCatalogGroup;

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

這是來自對象的一個​​道具:

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" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM