如何更新网格视图内部的绑定

本文关键字:视图 内部 绑定 网格 何更新 更新 | 更新日期: 2023-09-27 18:27:56

我将使用这里的解决方案文件作为示例:https://github.com/Windows-Readiness/AbsoluteBeginnersWin10/tree/master/UWP-040/UWP-040(例如,如果创建者对我链接这些内容有问题,我会自己制作并上传它们)。目前,gridview绑定到一个类book的List。网格视图的项模板绑定到的属性之一称为Title。然而,如果我更新Title,并调用Bindings.update(),它不会更新它。为了说明这一点,我在页面上添加了一个按钮,并使其操作如下:

Books[0].Title = "hello";
Bindings.Update();

现在,当我按下按钮时,我希望网格视图上的第一个项目将其标题更改为"你好"。然而,什么也没发生。我如何实现这种行为?该解决方案也需要在C++/CX中工作,因为我将在那里使用它。

如何更新网格视图内部的绑定

示例代码中Book的实现是

public class Book
{
    public int BookId { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public string CoverImage { get; set; }
}

如果要更新代码中的属性,则必须实现INotifyPropertyChanged。任何属性更改都将自动传播到您的UI。几个MVVM框架提供了一个基本实现,使您的工作更轻松。

编辑:正如@justanotherxl正确注意到的那样:x:Bind默认为OneTime,对于更新,它必须更改为OneWay(这是常规绑定的默认值,因此这些绑定开箱即用即可正常工作)。