问题是,DataGrid中的空白行没有出现,ergo用户无法添加数据。 这是代码:
System.Collections.ObjectModel.ObservableCollection<CoreVocabularyEntry> dataList = new System.Collections.ObjectModel.ObservableCollection<CoreVocabularyEntry>();
public VocabularyToolWindow()
{
InitializeComponent();
dataList.Add(new CoreVocabularyEntry { Foreign = "ja", Native = "ano" });
ListCollectionView view = new ListCollectionView(dataList);
WordsDataGrid.ItemsSource = dataList;
WordsDataGrid.CanUserAddRows = true;
MessageBox.Show(view.CanAddNew.ToString());
}
我无法弄清楚为什么view.CanAddNew等于false。这看起来像一个非常标准的场景,所以可能有一些我不知道的事情。有人能告诉我代码有什么问题吗? CoreVocabularyEntry就是以下内容:
public struct CoreVocabularyEntry : IVocabularyEntry
{
#region IVocabularyEntry Members
public string Foreign
{
get;
set;
}
public string Native
{
get;
set;
}
#endregion
}
Thx,J.K。
答案 0 :(得分:1)
将WordsDataGrid.CanUserAddRows = true;
移到设置DataGrid的ItemSource的语句上方。
修改强>
注意到你没有实施IEditableObject。您需要这样做才能使用DataGrid的编辑功能。
答案 1 :(得分:1)
这可能比上面更简单。当我没有默认构造函数时,我遇到了这个问题,因此datagrid不知道如何添加新行。我唯一的构造函数涉及要提供的一堆信息。转到List&lt;&gt;的对象是由和添加一个构造函数,如: public MyClass(){} 希望这有帮助!