假设您有一个带有ItemsSource-Property(DataGrid.ItemsSource)的网格。该属性是在运行时设置的。可能的对象可能如下:
public partial class InstantFeedbackCollectionViewModel<TEntity, TPrimaryKey, TUnitOfWork>
: InstantFeedbackCollectionViewModelBase<TEntity, TEntity, TPrimaryKey, TUnitOfWork>
稍后在运行时,我想捕获一个事件,并检查网格的ItemsSource是否为上述类型。
通常我会做这样的事情:
if (typeof(datagrid.ItemsSource) is InstantFeedbackCollectionViewModel) then ...
但是,如何使用该泛型类执行此操作?
更新:
在第二步中,我想在InstantFeedbackCollectionViewModel中执行一个方法。像这样的东西:
if (datagrid.ItemsSource.GetType().GetGenericTypeDefinition() == typeof(InstantFeedbackCollectionViewModel<,,>) {
var instFeedbackCollectionViewModel = grid.ItemsSource;
instFeedbackCollectionViewModel.ExecuteMyMethod();
}
有人知道该怎么做吗?
如果您想知道类型是否为泛型InstantFeedbackCollectionViewModel
,可以使用以下代码:
bool isInstantFeedbackCollectionViewModel =
datagrid.ItemsSource.GetType().GetGenericTypeDefinition() ==
typeof(InstantFeedbackCollectionViewModel<,,>);
如果您想知道类型是否继承自泛型,InstantFeedbackCollectionViewModel
请参阅检查类是否派生自泛型类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句