【问题标题】:what is ICustomTypeDescriptor and when to use it?什么是 ICustomTypeDescriptor 以及何时使用它?
【发布时间】:2011-10-03 21:36:13
【问题描述】:

我不明白它是什么以及何时使用它。 MSDN 没有帮助我。 MSDN 声明 ICustomTypeDescriptor 提供了一个接口,为对象提供动态自定义类型信息。

【问题讨论】:

    标签: c# .net icustomtypedescriptor


    【解决方案1】:

    有很多可用的资源显示ICustomTypeDescriptor 接口的不同用例,但简而言之,典型用例是提供标准TypeDescriptor 提供之外的自定义类型描述。该接口很少在不需要返回自定义成员描述符(例如自定义PropertyDescriptor)的情况下实现。

    Type Descriptor Overview from the MSDN 是一个很好的资源,可能有助于进一步阐明用途和用法。

    【讨论】:

    【解决方案2】:

    在 MVVM 中,您应该将 ViewModel 创建为普通 C# 类,公开可以绑定到控件的属性,并可能实现 INotifyPropertyChanged 以在您更改属性值时发出通知,以便绑定控件可以注意到。 WPF 将使用反射来发现 ViewModel 类的属性。

    但是,您可能不希望 WPF 使用反射来发现对象的属性。可以想象,您的 ViewModel 甚至可能没有实现 C# 属性,而是可能使用其他机制公开命名值。例如,您可以构建一个通用 ViewModel,它包含一个填充有命名值的IDictionary<string,object>。如果ICustomTypeDescriptor 不存在,您将无法执行此操作。 ICustomTypeDescriptor 告诉 WPF 不要使用反射来发现 ViewModel 的属性,而是通过调用 ICustomTypeDescriptor 接口的方法来发现它们。

    进一步阅读可以在这里找到:https://docs.microsoft.com/en-us/archive/msdn-magazine/2005/april/net-matters-icustomtypedescriptor-part-1

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2018-09-17
      • 1970-01-01
      • 2022-01-10
      • 2015-03-13
      • 2013-10-25
      相关资源
      最近更新 更多