此视图不允许使用“EditItem”。尝试编辑DataGrid中的项目时

时间:2017-10-13 14:52:34

标签: c# .net wpf datagrid

因此,当我双击某个项目来编辑我的数据网格中的值时,我不断收到错误消息。

  

此视图不允许使用'EditItem'。'

它看起来像这样 enter image description here

我以前从未遇到过这种情况所以我不知道该怎样处理这个问题。 造成这个问题的原因是什么,以及处理这个问题的正确方法是什么,所以我知道将来如何处理它。 我尝试在谷歌上查看它,但它都有列表要做,因为我没有使用列表,我无法看到与我的应用程序的连接。

XAML     

    <DataGrid Name="dgItems">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Property" Binding="{Binding Property}" />
            <DataGridTextColumn Header="Value" Binding="{Binding Value}" />
        </DataGrid.Columns>
    </DataGrid>
</Grid>

CS

private void btnStart_Click(object sender, RoutedEventArgs e)
{
    string path = "";
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "Properties | *.properties";
    if (ofd.ShowDialog() == true)
    {
        path = ofd.FileName;
    }
    using (StreamReader sr = new StreamReader(path))
    {
        string line;
        while ((line = sr.ReadLine()) != null)
        {
            if (!line.StartsWith("#"))
            {
                string[] lines = line.Split('=');
                string property = lines[0];
                string value = lines[1];
                this.dgItems.Items.Add(new ServerProperties { Property = property, Value = value });
                Debug.Print($"Property: {property} Value: {value}");
            }
        }
    }
}

我的班级得到&amp;设置值

public class ServerProperties
{
    public string Property { get; set; }
    public string Value { get; set; }
}

1 个答案:

答案 0 :(得分:1)

您应该将ItemsSource的{​​{1}}属性设置为实现DataGrid界面的集合,以便您能够编辑项目:

IList

不要将任何项目直接添加到var list = new List<ServerProperties> { ... }; dgItems.ItemsSource = list; 的<{1}}属性:

Items

所以你应该稍微修改你的代码:

DataGrid