将项目添加到DataGrid的集合中



我来找你,因为我有一个问题(令人惊讶?(。

我目前正在使用包含多个对象的"矩阵"集合。当我在datagrid中显示它时,我需要一个其他数据,即一个复选框(在数据杂志中选择我的行(。你能帮我吗?

        private ObservableCollection<Matrix> _Matrice;
    public ObservableCollection<Matrix> Matrice
    {
        get
        {
            return _Matrice;
        }
        set
        {
            if (value != _Matrice)
            {
                _Matrice = value;
                RaisePropertyChanged(nameof(Matrice));
            }
        }
    }
            Matrice = new ObservableCollection<Matrix>(await _dataService.GetMatrice(idMatrice));

" Matrice"包含我的数据(日期,名称等(如果我在数据杂志中显示它,则将显示所有数据的显示。我只想添加一个" bool"以使用一个复选框来选择网格行(例如,如果我检查第1行,第3行,第7行,我会将它们添加到矩阵列表中(。

但是,尽管我进行了研究,但我在"添加"新数据的过程中有点丢失。诸如" foreach line>添加此布尔"之类的东西。

非常感谢!

您可以在datagrid列中添加" datagridcheckboxcolumn"定义:

<DataGrid ItemsSource="{Binding Matrice}>
  <DataGrid.Columns>
    <DataGridCheckBoxColumn Header="Check"/>
    <DataGridTextColumn Header="Name" Binding="{Binding name}"/>
  </DataGrid.Columns>
</DataGrid>

您的类矩阵是每行呈现的。

成为每一行的数据台面。

您将使用DataGridCheckBoxColumn添加公共布尔属性并绑定到该矩阵。

如果矩阵实际上是模型类,并且您无法更改其属性,则添加另一个类。MatrixViewModel。添加属性与您的模型匹配,以及BOOL。将数据从模型类复制到ViewModel。如果有很多属性,则可以使用反射或自动化。

最新更新