gpt4 book ai didi

C# 网格绑定(bind)不更新

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:44 26 4
gpt4 key购买 nike

我有一个绑定(bind)到集合的网格。由于某种我不知道的原因,现在当我在网格中执行某些操作时,网格不会更新。

情况:当我单击网格中的一个按钮时,它增加了同一行中的一个值。单击时,我可以调试并查看值增量,但网格中的值没有变化。 但是当我单击按钮、最小化并恢复窗口时,值会更新...我需要做什么才能像以前一样更新值?

更新这没有解决,但我接受了这里的最佳答案。

它没有解决,因为当数据来自数据库而不是来自缓存时它照常工作。对象被序列化并抛出事件丢失的过程。这就是我重新构建它们的原因,它可以按照我所知道的方式工作,因为我可以与它们交互,但由于未知原因,它似乎不适用于网格更新。

最佳答案

为了实现双向绑定(bind),从控件到数据源以及从数据源到控件,数据源必须以两种可能的方式之一实现属性更改通知事件:

  • 实现 INotifyPropertyChanged接口(interface),并在属性更改时引发事件:

    public string Name 
    {
    get
    {
    return this._Name;
    }
    set
    {
    if (value != this._Name)
    {
    this._Name= value;
    NotifyPropertyChanged("Name");
    }
    }
    }
  • 为每个必须在更改时通知控件的属性实现更改事件。事件名称的格式必须是 PropertyNameChanged :

    public event EventHandler NameChanged;

    public string Name
    {
    get
    {
    return this._Name;
    }
    set
    {
    if (value != this._Name)
    {
    this._Name= value;
    if (NameChanged != null) NameChanged(this, EventArgs.Empty);
    }
    }
    }

    *请注意,您的属性值在窗口最大化后是正确的,因为控件会重新读取数据源中的值。

关于C# 网格绑定(bind)不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/118051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com