本文演示了如何使用XAML属性来将参数传递给非默认构造函数,调用工厂方法以及指定泛型参数的类型。
概观
通常需要使用需要参数的构造函数实例化对象,或者调用静态创建方法。 这可以通过使用x:Argument和x:FactoryMethod属性在XAML中实现:
- x:Argument属性用于指定非默认构造函数或工厂方法对象声明的构造函数参数。 有关更多信息,请参阅传递构造函数参数。
- x:FactoryMethod属性用于指定可用于初始化对象的工厂方法。 有关更多信息,请参阅调用工厂方法。
另外,x:TypeArguments属性可以用来为泛型类型的构造函数指定泛型类型参数。 有关更多信息,请参阅指定通用类型参数。
传递构造函数参数
可以使用x:Argument属性将参数传递给非默认构造函数。 每个构造函数参数都必须在表示参数类型的XML元素中分隔。 Xamarin.Forms支持以下基本类型的元素:
- x:Object
- x:Boolean
- x:Byte
- x:Int16
- x:Int32
- x:Int64
- x:Single
- x:Double
- x:Decimal
- x:Char
- x:String
- x:TimeSpan
- x:Array
- x:DateTime
下面的代码示例演示如何在三个Color构造函数中使用x:Arguments属性:
点击(此处)折叠或打开
- BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
- BoxView.Color>
- Color>
- x:Arguments>
- x:Double>0.9/x:Double>
- /x:Arguments>
- /Color>
- /BoxView.Color>
- /BoxView>
- BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
- BoxView.Color>
- Color>
- x:Arguments>
- x:Double>0.25