空WPF DataGrid应由用户填写

时间:2017-03-03 11:04:20

标签: c# wpf xaml datagrid

我在WPF中使用DataGrid视图,该视图由以下XAML代码插入

<DataGrid x:Name="DVA_Zyklus_DataGrid" IsManipulationEnabled="True"/>
</Grid>

现在我在C#Code

中添加一列
DataGridTextColumn c0 = new DataGridTextColumn();
c0.Header = "Test";
c0.Binding = new Binding("TimeToRamp");
c0.Width = 110;
DVA_Zyklus_DataGrid.Columns.Add(c0);

和一行

DVA_Zyklus_DataGrid.Items.Add(new DVA_Zyklus_DataGrid_Single_Pump_Item() { TimeToRamp = 0.0});

,其中

public class DVA_Zyklus_DataGrid_Single_Pump_Item
{
   public double TimeToRamp { get; set; }
}

这样可以正常工作并生成一个值为0的单元格。现在用户应该能够更改此值。如何选择单元格并按任意键会导致程序崩溃。

  

异常类型System.InvalidOperationException,其他信息不允许使用EditItem。

有关如何允许用户执行此操作的任何想法吗?

1 个答案:

答案 0 :(得分:0)

您应该设置DataGrid的ItemsSource,而不是将项目插入Items属性:

var list = new ObservableCollection<DVA_Zyklus_DataGrid_Single_Pump_Item>();
list.Add(new DVA_Zyklus_DataGrid_Single_Pump_Item() { TimeToRamp = 0.0 });
dg.ItemsSource = list;

我认为最好遵循MVVM方法来填充DataGrid。关于它的帖子很多,例如this one