1

我正在学习新的 WinUI 平台以及 C# 中的 XAML 和 GUI 编程,我不确定我是否正确理解绑定和更新的工作原理,但我无法让以下代码(最小工作示例)工作:主页.xaml

<Page
    x:Class="uitest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
        <ListView ItemsSource="{x:Bind Items, Mode=OneWay}"></ListView>
        <Button Content="Add" Click="Button_OnClick"></Button>
    </StackPanel>
</Page>

MainPage.xaml.cs

using System.Collections.ObjectModel;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

namespace uitest
{
    public sealed partial class MainPage : Page
    {
        public ObservableCollection<string> Items = new ObservableCollection<string>();
        
        public MainPage()
        {
            this.InitializeComponent();
            Items.Add("A");
            Items.Add("B");
        }

        private void Button_OnClick(object sender, RoutedEventArgs e)
        {
            Items.Add("Next");
        }
    }
}

当我启动应用程序时,我看到一个包含两个项目的列表,但是当我单击按钮时没有任何反应。我想使用 Live Visual Tree 进行调试,但由于某种原因它无法正常工作。

4

1 回答 1

0

我为此在官方 WinUI 存储库上打开了一个问题,显然这是最新 WinUI 3 预览版中的兼容性错误。我还应该注意,这不仅适用于 UWP 平台,而且适用于桌面 (Win32)。

于 2020-12-17T10:18:00.640 回答