C# Xamarin将网格绑定到ViewModel

C# Xamarin将网格绑定到ViewModel,c#,xamarin,binding,grid,C#,Xamarin,Binding,Grid,有没有办法将网格的属性(行定义、列定义、行间距、列间距等)绑定到ViewModel?查看源代码总是有帮助的: 因此,正如代码所证明的,行定义、列定义、行间距、列间距都是可绑定的属性: public static readonly BindableProperty RowSpacingProperty = BindableProperty.Create("RowSpacing", ...); public static readonly BindableProperty Colu

有没有办法将网格的属性(行定义、列定义、行间距、列间距等)绑定到ViewModel?

查看源代码总是有帮助的:

因此,正如代码所证明的,行定义、列定义、行间距、列间距都是可绑定的属性:

    public static readonly BindableProperty RowSpacingProperty = BindableProperty.Create("RowSpacing", ...);

    public static readonly BindableProperty ColumnSpacingProperty = BindableProperty.Create("ColumnSpacing", ...);

    public static readonly BindableProperty ColumnDefinitionsProperty = BindableProperty.Create("ColumnDefinitions", ...);

    public static readonly BindableProperty RowDefinitionsProperty = BindableProperty.Create("RowDefinitions", ...);
更新:因此,要使此绑定正常工作,需要做以下工作:

如果使用,请确保它从不返回null

然后,通过将网格的
TargetNullValue
FallbackValue
分配给空的行/列定义集合(例如使用StaticResource)来防止任何绑定解析

为此,首先在App.xaml中创建一个仅为行/列定义集合的集合:

<Application.Resources>
    <ResourceDictionary>
        <RowDefinitionCollection x:Key="NullRowDefs" />
        <ColumnDefinitionCollection x:Key="NullColDefs" />
    </ResourceDictionary>
</Application.Resources>
执行上述操作应能解决
参数异常


更新:此绑定应在不提供
TargetNullValue
FallbackValue
的情况下工作。A已被发现,A已被创建,因此在即将发布的版本中应该对此进行修复,但同时,请使用解决方法。

我已尝试将xaml中的行和列定义绑定到行/列定义集合,但我一直得到“System.ArgumentException:值对于行定义无效”。有没有办法解决这个问题?哦,看起来有一个关于这个的旧错误报告:。我可以使RowSpacing和ColumnSpacking绑定工作,但在尝试使用RowDefinitions和ColumnSpacking绑定时遇到了与您相同的异常。
 <Grid RowDefinitions="{Binding RowSize, TargetNullValue={StaticResource NullRowDefs}, FallbackValue={StaticResource NullRowDefs}}"
       ColumnDefinitions="{Binding ColumnSize, TargetNullValue={StaticResource NullColDefs}, FallbackValue={StaticResource NullColDefs}}"
       x:Name="grid">