如何更新 gridview 中的绑定?

How to update bindings inside of a gridview?

我将使用此处的解决方案文件作为示例:https://github.com/Windows-Readiness/AbsoluteBeginnersWin10/tree/master/UWP-040/UWP-040(如果创建者对我链接这些示例有疑问,我将自己制作并上传)。目前,gridview绑定的是一个classbook的List。 gridview 的项目模板绑定到的属性之一称为 Title。但是,如果我更新标题并调用 Bindings.Update(),它不会更新它。为了说明这一点,我在页面上添加了一个按钮,并使其动作如下:

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

现在,当我按下按钮时,我希望 将 gridview 上的第一个项目的标题更改为 "hello"。但是,没有任何反应。我如何实现这种行为?该解决方案也需要在 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(这是常规绑定的默认值,因此它们可以正常工作开箱即用)。