在内容视图Xamarin.forms中为ColumnDefinitionCollection创建可绑定属性

hfsqlsce  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(134)

我有一个通用的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.列定义集合弹出视图.网格列定义默认值类型:字符串,参数名称:默认值'
我在“可绑定”属性行上遇到此错误。

jexiocij

jexiocij1#

对于简单的情况,另一种方法是在代码隐藏中创建所需的ColumnDefinitions,并使用bool属性控制何时执行此操作。
第一个

相关问题