ColumnDefinition 中的 .Net Maui 转换器
.Net Maui converter in ColumnDefinition
在我看来,我有一个包含许多列的网格。我想 hide/show 一列并根据视图模型中的 ObservableProperty 调整其他列的大小。
我尝试绑定到 ColumnDefinition 的宽度并使用转换器将布尔值转换为 GridLength。但是无论我如何尝试,我在转换器中的断点都没有命中。
这根本不可能吗?错误?还是我还没有找到正确的语法?
我最近的尝试是这样的:
<ColumnDefinition Width="{Binding ShowColorColumn, Converter={StaticResource converters:BoolToGridLengthConverter}, ConverterParameter='80|0'}" />
您可以将 ColumnDefinitions 与 ColumnDefinitionCollection 绑定,并向其中添加多个 ColumnDefinition 对象。
喜欢:
<Grid ColumnDefinitions="{Binding columns}">
<Label Grid.Row="0" Grid.Column="0" BackgroundColor="Red" Text="Label1"/>
<Label Grid.Row="0" Grid.Column="1" BackgroundColor="Yellow" Text="Label2"/>
<Label Grid.Row="0" Grid.Column="2" BackgroundColor="Green" Text="Label3"/>
</Grid>
代码 bdehind:
public ColumnDefinitionCollection columns { set; get; }
public string text { set; get; }
public GridTestPage()
{
columns = new ColumnDefinitionCollection();
ColumnDefinition column1=new ColumnDefinition();
ColumnDefinition column2 = new ColumnDefinition();
ColumnDefinition column3 = new ColumnDefinition();
column1.Width = 20;
column2.Width = 40;
column3.Width = 60;
columns.Add(column1);
columns.Add(column2);
columns.Add(column3);
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
BindingContext = this;
}
在我看来,我有一个包含许多列的网格。我想 hide/show 一列并根据视图模型中的 ObservableProperty 调整其他列的大小。
我尝试绑定到 ColumnDefinition 的宽度并使用转换器将布尔值转换为 GridLength。但是无论我如何尝试,我在转换器中的断点都没有命中。
这根本不可能吗?错误?还是我还没有找到正确的语法?
我最近的尝试是这样的:
<ColumnDefinition Width="{Binding ShowColorColumn, Converter={StaticResource converters:BoolToGridLengthConverter}, ConverterParameter='80|0'}" />
您可以将 ColumnDefinitions 与 ColumnDefinitionCollection 绑定,并向其中添加多个 ColumnDefinition 对象。 喜欢:
<Grid ColumnDefinitions="{Binding columns}">
<Label Grid.Row="0" Grid.Column="0" BackgroundColor="Red" Text="Label1"/>
<Label Grid.Row="0" Grid.Column="1" BackgroundColor="Yellow" Text="Label2"/>
<Label Grid.Row="0" Grid.Column="2" BackgroundColor="Green" Text="Label3"/>
</Grid>
代码 bdehind:
public ColumnDefinitionCollection columns { set; get; }
public string text { set; get; }
public GridTestPage()
{
columns = new ColumnDefinitionCollection();
ColumnDefinition column1=new ColumnDefinition();
ColumnDefinition column2 = new ColumnDefinition();
ColumnDefinition column3 = new ColumnDefinition();
column1.Width = 20;
column2.Width = 40;
column3.Width = 60;
columns.Add(column1);
columns.Add(column2);
columns.Add(column3);
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
BindingContext = this;
}