'.Net Maui converter in ColumnDefinition
In my view I have a Grid with a number of columns. I would like to hide/show one column and resize the others based on an ObservableProperty in the view model.
I have tried to bind to the Width of the ColumnDefinition and use a converter to convert the boolean to a GridLength. But no matter how I try, my breakpoint in the converter is not hit.
Is it simply not possible? a bug? or have I just not found the correct syntax yet?
My latest attempt looks like this:
<ColumnDefinition Width="{Binding ShowColorColumn, Converter={StaticResource converters:BoolToGridLengthConverter}, ConverterParameter='80|0'}" />
Solution 1:[1]
You can bind the ColumnDefinitions with ColumnDefinitionCollection, and add several ColumnDefinition object into it. like:
<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>
code 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;
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Adrain Zhu -MSFT |
