Можно поместить защитный тип на IFoo, который ничего не делает, удостоверьтесь, что это находится там на T в Нечто:
class IFoo
{
public:
typedef int IsDerivedFromIFoo;
};
template <typename T>
class Foo<T>
{
typedef typename T::IsDerivedFromIFoo IFooGuard;
}
Я решил эту проблему, изменив STMTTRN со списка на список привязок - список, похоже, имеет очень странное поведение при использовании в качестве источника данных (см. Мой другой недавний вопрос, который решается таким же образом ).
Он находится в сгенерированном коде, но я уже изменил его с Array на List, так что BindingList почти не вызывает никаких дополнительных проблем :)
Попробуйте,
DataTable dt = new DataTable();
dt.Columns.Add("No", typeof(int));
dt.Columns.Add("Name");
dataGridView1.AllowUserToAddRows = true;
dataGridView1.EditMode = DataGridViewEditMode.EditOnKeystroke;
dataGridView1.DataSource = dt;
РЕДАКТИРОВАТЬ:
Взгляните на IBindingList
У меня была такая же проблема.
Использование Bindingsource в качестве DGV DataSource и установка истинного свойства Bindingsource Allowlew = True, решила мою проблему.
Dim binding As New BindingSource
binding.DataSource = myList
binding.AllowNew = True
With DataGridView1
.AutoGenerateColumns = False
.DataSource = binding
End With