【问题标题】:add item into collection for datagrid将项目添加到数据网格的集合中
【发布时间】:2019-05-09 22:57:20
【问题描述】:

我来找你是因为我有一个问题(很奇怪?)。

我目前正在使用包含多个对象的“矩阵”集合。当我在我的数据网格中显示它时,我想要一个额外的数据,即一个复选框(在数据网格中选择我的行)。 你能帮我解决这个问题吗?

        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));

“矩阵”包含我的数据(日期、姓名等) 如果我在数据网格中显示它,我会得到所有数据的显示。我只想添加一个“bool”以有一个复选框来选择网格行(例如,如果我检查第 1 行、第 3 行、第 7 行,我会将它们添加到矩阵列表中)。

但是,尽管我进行了研究,但在将新数据“添加”到集合中的过程中,我还是有点迷茫。 像“foreach line > add this bool.

非常感谢!

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    您可以在 Datagrid 列定义中添加“DataGridCheckBoxColumn”:

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

    【讨论】:

    • 太棒了,这正是我所需要的。谢谢!
    【解决方案2】:

    您的类矩阵是呈现给每一行的内容。

    这成为每一行的数据上下文。

    您将向 Matrix 添加一个公共 bool 属性并使用 datagridcheckbox 列绑定到该属性。

    如果 Matrix 实际上是一个模型类并且您无法更改它的属性,则添加另一个类。矩阵视图模型。添加属性匹配你的模型,加上布尔。将数据从模型类复制到视图模型。如果有很多属性,您可以使用反射或自动映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多