我将使用此处的解决方案文件作为示例: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中工作,因为我将使用它。
答案 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
(这是常规绑定的默认设置,因此这些更正可以正常工作方框)。