我有一个通用的ContentView,在很多ContentPages中都调用过,不同的页面有不同的要求,根据要求,我想修改ColumnDefinition的宽度属性。
例如:
在一个页面上,网格视图中有三个控件,宽度为“,1,”
<Grid ColumnDefinitions="*,1,*">
但在其他页面上,我希望关闭前两个控件的可见性,这就是为什么我希望为前两个控件的Auto指定宽度。
<Grid ColumnDefinitions="Auto,Auto,*">
为了实现这个功能,我创建了可绑定的属性。
public static readonly BindableProperty GridColumnDefinitionProperty =
BindableProperty.Create(nameof(GridColumnDefinition), typeof(ColumnDefinitionCollection), typeof(PopupView), "*,1,*");
public ColumnDefinitionCollection GridColumnDefinition
{
get => (ColumnDefinitionCollection)GetValue(GridColumnDefinitionProperty);
set => SetValue(GridColumnDefinitionProperty, value);
}
但我收到这个错误
System.ArgumentException:'默认值与返回类型不匹配。属性:Xamarin.Forms.列定义集合弹出视图.网格列定义默认值类型:字符串,参数名称:默认值'
我在“可绑定”属性行上遇到此错误。
1条答案
按热度按时间jexiocij1#
对于简单的情况,另一种方法是在代码隐藏中创建所需的ColumnDefinitions,并使用
bool
属性控制何时执行此操作。第一个