我有一个 DataGridView,我想用它来存储通用数据。我想在 DataGridView 类中保留一个类型化数据列表,以便可以在内部处理所有类型等。但是我不想在 DataGridView 上设置类型,因为在调用 InitializeData 方法之前我不知道数据类型。
public class MyDataGridView : DataGridView {
private List<T> m_data;
public InitializeData<T>(List<T> data) {
m_data = data;
}
... internal events to know when the datagrid wants to sort ...
m_data.Sort<T>(...)
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,如何?
如果您在调用 之前不知道类型InitializeData,那么该类型显然不能是对象的编译时部分。
当您致电时,您是否了解有关排序的所有信息InitializeData<T>?如果是这样,你如何做这样的事情:
private IList m_data;
private Action m_sorter;
public InitializeData<T>(List<T> data)
{
m_data = data;
// This captures the data variable. You'll need to
// do something different if that's not good enough
m_sorter = () => data.Sort();
}
Run Code Online (Sandbox Code Playgroud)
然后当您稍后需要排序时,您可以调用m_sorter().
如果您可能对不同的事物进行排序,则可能会将其从ActiontoAction<string>或任何您需要能够排序的内容更改。
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |