我試圖創建一個Fluent接口到Winforms Datagrid。這應該允許我用一個類型的數據源和易用性的特性(Order.Custom.FullName)基於lambda表達式創建匿名類型
我加入在初始化列,並試圖將該屬性設置爲使用有:
dgv.With<Order>().Column("Client Name").On(x => x.Client.FullName);
原來的問題,然後設置數據源時提出本身:
dgv.SetTypedDatasource<T>(IList<Order> orders)
這裏的一個大問題是,通用控件是不可能的(我猜),讓T不能爲類指定,但必須是每種方法指定...
我想創建一個匿名類型的列表,基於在lambda表達式給定的屬性:
類似:
ProcessList<Client>(clientList, x => x.FullName);
是否有可能做這樣的事情:
[編輯]請注意,在實踐中,表達式將設置得更早,並將在其他地方提取...
public void ProcessList<T>(IList<T> sourceList, Expression<Func<T, object>> expression)
{
var list =
(from T x
in sourceList
select new { expression })
.ToList();
// process list .... grid.DataSource = list;
}
所以,我想創建基於給定表達式的匿名類型。我知道我可以評估這個表達式來檢索正確的屬性。
我有點卡住了,是這樣的可能嗎?
任何想法?
我不太確定,你想用匿名方式做什麼? – driis 2009-04-16 20:28:50