-1
我StudentViewModel
對象的列表。我使用DataGridView綁定此列表,並根據綁定模型的屬性將列生成設置爲自動。C#LINQ,如果它有一個自定義選擇屬性特性
public async Task LoadGridView()
{
Tuple<List<StudentViewModel>, int> result = await App.StudentService.SearchAsync(studentRequestModel);
dataGridView1.DataSource = null;
dataGridView1.DataSource = result.Item1;
}
在StudentViewModel,我已經裝飾了一些具有自定義屬性的屬性IsViewable
。
[AttributeUsage(AttributeTargets.Property)]
public class IsViewable: Attribute
{
public bool Value { get; set; }
}
用法:
[IsViewable(Value = true)]
public string Name { get; set; }
想法是,剛剛與UI控件綁定之前,我想過濾列表,讓匿名對象的一個新的列表,以便我網將與填充只有選定的屬性。
注:我不希望創建特定於電網單獨視圖模型。如果它造成性能問題,我會重構它。
沒有辦法動態基因評價一個匿名類型,因爲這些屬性需要在編譯時知道。您可以使用字典來映射名稱和值,或填充「ExpandoObject」並使用「dynamic」來獲取類似屬性的語法。或者創建一個新的'o'並動態複製具有該屬性的屬性。 –
這個答案可能會幫助:https://stackoverflow.com/a/4938442/1220550 –
如果我理解正確的話,你不希望這些屬性由'DataGridView'顯示。如果這是你想要的,你不能通過使用屬性'[Browsable(false)]'而不是你自定義的'IsViewable'來實現它嗎? –