ObservableCollections 在 MAUI 中还没有工作?

ObservableCollections not working yet in MAUI?

我尝试了 MAUI 和 MVVM ObservableCollection

没有任何变化。尽管在单击按钮时添加了第三个元素,但“Foo”和“Bar”仍然存在。

我的项目:

将(默认)新项目中的第一个标签替换为

<StackLayout
    Grid.Row="0"
    BindableLayout.ItemsSource="{Binding Foo}">

    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <Label Text="{Binding .}"/>
        </DataTemplate>
    </BindableLayout.ItemTemplate>
                    
</StackLayout>

已添加

    <ContentPage.BindingContext>
        <local:MainPageViewModel/>
    </ContentPage.BindingContext>

视图模型:

public class MainPageViewModel
    {
        public ObservableCollection<string> Foo { get; } = new() { "Foo", "Bar" };
    }

在单击按钮时添加(作为第一个元素添加以避免由于 UI 高度问题而丢失更改,但是当我尝试使用 Add() 时没有任何变化):

(this.BindingContext as MainPageViewModel).Foo.Insert(0, "Baz");

是否有任何信息表明 ObservableCollections 应该已经可以工作了? 或者(来自 WPF)我必须为 MAUI/Xamarin 更改什么?

我已经尝试重现您所看到的,而且我 100% 可以。显示初始值,但在添加内容时不显示。但是,检查实时可视化树,我们看到确实添加了 LabelObservableCollection 有效,布局似乎没有更新。

即使在 StackLayout 上调用强制布局,它似乎也不会更新,所以看起来布局在这一点上无法正常工作。

看着 roadmap 还有一些布局工作要做,它可能会在预览版 7 中得到修复。