我在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。
有关如何允许用户执行此操作的任何想法吗?
答案 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。