此视图列表不允许使用Edititem

时间:2016-11-26 08:06:49

标签: c# wpf xaml datagrid wpfdatagrid

我已经尝试了几个小时但是我无法在datagrid中编辑列数量,每当我这样做时都会给我一个错误说

  

未处理的类型' System.InvalidOperationException'发生在PresentationFramework.dll中   其他信息:' EditItem'此视图不允许使用。

我的xaml代码是

List<AddItem> DATA = new List<AddItem>()
{
    new AddItem()
    {
        ItemName = ItemName.Text.ToString(),
        ItemPrice = float.Parse(ItemPrice.Text.ToString()),
        Quantity = quantity.Text,
        TotalPrice = CalculateTotalPrice()
    }
};
DataGrid1.Items.Add(DATA);

public class AddItem
{
    public string ItemName { get; set; }
    public float ItemPrice { get; set; }
    public string Price { get; set; }
    public string Quantity { get; set; }
    public decimal TotalPrice { get; set; }
}

这里是C#代码

with open("sample.txt","r") as f:
        list_1 = []
        list_2 = []
        fulllist = []
        for x in f.readlines():
            x = x.split("\n")[0]
            fulllist.append(x)

        print fulllist 

        start_position = fulllist.index('start')
        middle_position = fulllist.index('middle')
        end_position = fulllist.index('end')
        list_1 = fulllist[start_position+1 :middle_position] 
        list_2 = fulllist[middle_position+1 :end_position]
        print "list1 : ",list_1
        print "list2 : ",list_2 

我哪里错了?我试过可观察的收藏还没有解决方案吗? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

List<AddItem>列表分配给ItemSource而不是Add,如下所示:

使用

DataGrid1.ItemsSource = DATA;

而不是

DataGrid1.Items.Add(DATA);

您的代码的其他改进:

  • 使用decimal类型所有价格(始终)
  • 使用int类型作为数量,因为数量代表数字