我将跟随“创建XAML标记扩展”文档,并在“服务提供者”部分中提及SimpleValueTargetProvider.ParentObjects
属性。 此属性不可访问,因为SimpleValueTargetProvider
继承的IProvideParentValues接口是internal
。
由于某些原因,VS2017 intellisense会在调试期间公开该属性,但不会让您对其进行编码。 此ParentObects
属性将非常有帮助。 我该如何访问呢?
您不应该使用SimpleValueTargetProvider
并期望在您请求IProvideValueTarget
时返回该类型。 返回的serviceProvider可能取决于上下文,并且是否启用XamlC。
ParentObjects
是实现IReferenceProvider
,您可能会在那找到所需的内容。 我们没有开放ParentObjects
计划,因为生成它非常昂贵,并且我们仍在尝试看看是否可以避免生成它。
希望能帮助到你
该文档应该被更新为不引用该文档。
我查看了“ IReferenceProvider”,但这对我没有帮助。 我需要能够从“ IMarkupExtension”中识别“ TargetObject”的父层次结构。 我需要访问所有类型,因此我可以根据type'e继承而不是名称来搜索我想要的一种。 有任何想法吗?
@StephaneDelcroix我必须同意,在某些情况下我也需要评估父对象...打开此API真的很棒
最有用的评论
@StephaneDelcroix我必须同意,在某些情况下我也需要评估父对象...打开此API真的很棒