我有一個數據源,我不想綁定一個X的集合。 X應該包含某種類型的子集中,Y的屬性(假設Y的性能PropOne,PropTwo,PropThree) 這當然可以用一個匿名類型來完成:以類型安全的方式使用另一個實例的屬性子集創建一個實例?
void DoBind()
{
myGrid.DataSource = myCollectionOfYs.Select(y => new {y.PropOne, y.PropTwo});
}
我怎麼能修改此方法,以便它的調用者可以以類型安全的方式指定要在投影中使用哪些屬性?即沿着線的東西:
var expressions = new List<Expression<Func<Y, object>>>();
expressions.Add(y => y.PropOne);
expressions.Add(y => y.PropTwo);
DoBind(expressions);
是否必須是完全動態的?或者你有N種可能的情況? – 2013-02-15 15:17:48
那麼在使用Func時會出現問題嗎? –
2013-02-15 15:23:51
@Rui它應該是動態的,因爲方法的用戶應該完全自由地指定要包含在綁定數據中的任何屬性,並且不應該被迫改變DoBind方法或其任何依賴關係。 – Christian 2013-02-15 15:25:26