Home > Blockchain >  .NET MAUI CollectionView dont get populated
.NET MAUI CollectionView dont get populated

Time:08-25

I made a very simple .NET MAUI App based on the ClickMe Code thats generated by VS2022. The "ClickMe" Button should add a entry to a CollectionView which is binded to a ObservableCollection, but it don't populate the view if click the button although "monkeys" are added to the ObservableCollection maybe somebody can help what I'm missing.

public class Monkey 
{
    public string Name { get;set; }
    
    public Monkey(string name) {Name = name; }   
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiObservableList.MainPage">

    <ScrollView>
        <VerticalStackLayout Spacing="25" Padding="30,0" >

            <Button x:Name="CounterBtn" Text="Click me" Clicked="OnCounterClicked" HorizontalOptions="Center" />
            <CollectionView ItemsSource="{Binding Monkeys}">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <TextCell Text="{Binding Name}" />
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
            
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>

MainPage.xaml.cs:

int count = 0;
public ObservableCollection<Monkey> Monkeys { get; set; } = new ObservableCollection<Monkey>();
public MainPage()
{
    InitializeComponent();
    BindingContext = this;
}

private void OnCounterClicked(object sender, EventArgs e)
{
    count  ;

    if (count == 1)
        CounterBtn.Text = $"Clicked {count} time";
    else
        CounterBtn.Text = $"Clicked {count} times";

    Monkeys.Add(new Monkey(CounterBtn.Text));
}

CodePudding user response:

Replace TextCell with a Label. TextCell only works with ListView

  • Related