使用 DataGrid 以编程方式收集输入数据并将其存储在 List<> 中

Posted

技术标签:

【中文标题】使用 DataGrid 以编程方式收集输入数据并将其存储在 List<> 中【英文标题】:Using DataGrid to collect input data and store it in a List<>, programmatically 【发布时间】:2012-03-16 12:43:55 【问题描述】:

我最近开始使用 C# WPF,我正在尝试创建一个 DataGrid,它以编程方式收集用户输入并将其存储在 List 中。 到目前为止,这就是我所做的。

私人无效 Introduzir_Click(对象发送者,RoutedEventArgs e) //inValores.Add(new InData(12, 23, 45)); DataGrid dados = new DataGrid(); dados.ItemsSource = inValores; dados.Width = plotCanvas.ActualWidth; dados.Height = plotCanvas.ActualHeight; dados.AutoGenerateColumns = false; dados.IsReadOnly = false; dados.ColumnWidth = 150; dados.CanUserAddRows = true; DataGridTextColumn ColRaio = new DataGridTextColumn(); DataGridTextColumn ColMassa = new DataGridTextColumn(); DataGridTextColumn ColVelocidade = new DataGridTextColumn(); dados.Columns.Add(ColRaio); dados.Columns.Add(ColMassa); dados.Columns.Add(ColVelocidade); plotCanvas.Children.Add(dados); ColRaio.Header = "Raio"; //ColRaio.Binding = new Binding("[inValores.RAIO]"); ColMassa.Header = "Massa"; //ColMassa.Binding = new Binding("[inValores.VELINICIAL]"); ColVelocidade.Header = "Velocidade"; //ColVelocidade.Binding = new Binding("[inValores.MASSA]");

提前致谢。

【问题讨论】:

如何让用户在网格上输入值并将信息保存到列表中。我看过很多教程,但主要是编辑已经存在的数据,而且大多数只使用 xaml。 【参考方案1】:

您可以将每列的绑定指定为双向。

Binding bRaio=new Binding();
bRaio.Path = new PropertyPath("RAIO");
bRaio.Mode = BindingMode.TwoWay;
ColRaio.Binding = bRaio;

其他两列类似

【讨论】:

以上是关于使用 DataGrid 以编程方式收集输入数据并将其存储在 List<> 中的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建 Dojo DataGrid:“抱歉,发生错误。”布局问题?

以编程方式为 DataGrid 创建 WPF DataGridTemplateColumn

MUI:如何以编程方式更新 DataGrid 状态?

以编程方式获取或设置 Datagrid 中的单元格值

以编程方式在 WPF DataGrid 中选择多行

如何使用 MVVM 应用程序在 WPF 中以编程方式设置 DataGrid 的选定项?