我来找你是因为我有一个问题(感到惊讶吗?)。
我目前正在使用包含多个对象的“矩阵”集合。当我在数据网格中显示它时,我需要一个附加数据,即一个复选框(以在数据网格中选择我的行)。 你能帮我吗?
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));
“矩阵”包含我的数据(日期,名称等) 如果将其显示在数据网格中,则将显示所有数据。我只想添加一个“布尔”来使用一个复选框来选择网格行(例如,如果我检查第1行,第3行,第7行,则将它们添加到矩阵列表中)。
但是,尽管我进行了研究,但是在将新数据“添加”到集合中的过程中我还是有些失落。 例如“ foreach行>添加此布尔值。
非常感谢您!
答案 0 :(得分:0)
您的班级矩阵是每行显示的内容。
那将成为每一行的数据上下文。
您将向Matrix添加一个公共bool属性,并使用datagridcheckboxcolumn绑定到该属性。
如果Matrix实际上是模型类,并且您无法更改其属性,则添加另一个类。 MatrixViewModel。添加与模型匹配的属性,再加上布尔值。将数据从模型类复制到视图模型。如果有很多属性,则可以使用反射或自动贴图。
答案 1 :(得分:0)
您可以在Datagrid列定义中添加“ DataGridCheckBoxColumn”:
<DataGrid ItemsSource="{Binding Matrice}>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Check"/>
<DataGridTextColumn Header="Name" Binding="{Binding name}"/>
</DataGrid.Columns>
</DataGrid>