1

我正在 WPF 应用程序中处理自定义 MarkupExtension。我看到的每个文档示例都使用 XAML 中的字符串参数来构造新对象。是否可以使用非字符串参数?

换句话说,我怎么能做这样的事情?

[MarkupExtensionReturnType(typeof(Uri))]
public class RefPackUriExtension : MarkupExtension
{
    object _assembly = null;

    public RefPackUriExtension() { }

    public RefPackUriExtension(object assembly)
    {
        this._assembly = assembly;
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        //return an object by using the "_assembly" member somehow
    }
}
4

1 回答 1

0

您的任何参数MarkupExtension都受到与 CLR 对象上的属性相同的解析行为。您可以使用 aTypeConverter来允许用户提供string转换为目标类型的 a,也可以使用另一个MarkupExtension.

作为前者的示例,请参见ColorConverter类。作为后者的示例,请参见RelativeSource类(在 中使用Binding MarkupExtension)。

于 2008-12-16T21:26:20.043 回答