如何更新gridview内的绑定?

时间:2015-12-24 20:07:22

标签: c# xaml gridview uwp c++-cx

我将使用此处的解决方案文件作为示例:https://github.com/Windows-Readiness/AbsoluteBeginnersWin10/tree/master/UWP-040/UWP-040(如果创建者在链接这些示例时遇到问题,我会自行创建并上传它们) 。目前,gridview绑定到类book的List。 gridview的itemtemplate所绑定的属性之一称为Title。但是,如果我更新Title,并调用Bindings.Update(),它将不会更新它。为了说明这一点,我在页面上添加了一个按钮,并按此操作:

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

现在当我按下按钮时,我想要发生的事情是Gridview上的第一项将其标题改为"你好"。然而,没有任何反应。我该如何实现这种行为?该解决方案也需要在C ++ / CX中工作,因为我将使用它。

1 个答案:

答案 0 :(得分:1)

示例代码中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(这是常规绑定的默认设置,因此这些更正可以正常工作方框)。