基本问题,我已经详尽搜索了一整天。
My Account 对象有一个 KeyType 对象,它有一个 Name 属性,都是由 Linq to SQL 生成的。
我的绑定源:
var result = from account in Schema.Accounts select account as Account;
Data = new ComplexBindingList<Account>(result.ToList<Account>());
DataSource = Data;
ResetBindings(true);
我从 Bradley Smith 的博客中借来的 ComplexBindingList 有这个接口:
public class ComplexBindingList<T> : List<T>, ITypedList
这适用于我的 DataGridView:
Columns.Add(CreateColumn("KeyType.Name", "Key Type");
数据很好,因为这段代码在异常之前工作:
var v = account.KeyType.Name;
这不适用于我的文本框。我得到一个异常“对象'EPM.BODA.KeyType'上的属性访问器'名称'引发以下异常:'对象与目标类型不匹配。'”
// Controller is my BindingSource
Binding binding = EditField.DataBindings.Add("Text", Controller, "KeyType.Name");
我的总体印象是反射无法正常工作,但似乎无法找到有关如何填补空白的详细信息。为任何帮助而欢呼。