【发布时间】:2018-08-24 14:19:19
【问题描述】:
我正在尝试使用 Type 作为属性在 Xamarin 表单中创建自定义 MarkupExtension。不幸的是,我无法传递Type 的属性,在我的情况下,该属性始终为null。这是我的 MarkupExtension 的最小示例,将类型的全名返回为字符串:
[ContentProperty(nameof(TheType))]
public class TypeMarkupExtension : IMarkupExtension
{
public Type TheType { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
return TheType?.FullName ?? "Failure";
}
}
但是我尝试过,使用 MarkupExtension 是不可能的,因为TheType 始终是null,而我的返回值是"Failure"。这是我尝试使用扩展的方式,例如:
<Label Text="{local:TypeMarkup x:Int16}"/>
<Label Text="{local:TypeMarkup {x:Type x:Int16}}"/>
如果我使用简单的string 作为属性类型,则代码可以完美运行。对我来说,通过Type 似乎是不可能的。这是正确的还是我的代码有问题?
【问题讨论】:
标签: c# xaml xamarin xamarin.forms