首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新ComboBox源代码不会更新ComboBox

更新ComboBox源代码不会更新ComboBox
EN

Stack Overflow用户
提问于 2019-07-09 23:45:11
回答 1查看 42关注 0票数 0

我有一个ComboBox,它的ItemSource绑定到一个名为PersonsList的Person类型的ObservableCollection。此ComboBox上的DisplayMemberPath被设置为FullName (它只返回名字+姓氏)

Person中存储了各种信息,如名字、姓氏、电话号码、地址等。

现在,当我在PersonsList中更新person时,我会更新相应的数据字段并调用OnPropertyChanged("PersonsList")。现在,当我返回查看该ComboBox时,我的问题就出现了。如果我更新了一个人的名字或姓氏,它不会在这里更新。但是,当我单击应该更新的人时,它会正确显示新更新的名字/姓氏。

这里有两张图片来理解我的意思:https://imgur.com/a/fP6apoX

最后,下面是我的XAML代码:

代码语言:javascript
复制
ComboBox ItemsSource="{Binding PersonsList, UpdateSourceTrigger=PropertyChanged}" 
DisplayMemberPath="FullName"/>
EN

回答 1

Stack Overflow用户

发布于 2019-07-10 00:01:25

您需要修改Person类,如下所示,因为与View映射的属性属于Person类,因此需要由Person类触发属性changed事件

代码语言:javascript
复制
public class Person : INotifyPropertyChanged
{
    /// <summary>
    /// Property Changed Event Handler
    /// </summary>
    public event PropertyChangedEventHandler PropertyChanged;

    // Create the OnPropertyChanged method to raise the event
    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }

    private String _FirstName;
    public String FirstName {
        get {
            return _FirstName;
        }
        set {
            _FirstName = value;
            OnPropertyChanged(nameof(FirstName));
        }
    }

    private String _LastName;
    public String LastName
    {
        get
        {
            return _LastName;
        }
        set
        {
            _LastName = value;
            OnPropertyChanged(nameof(LastName));
        }
    }

    private String _FullName;
    public String FullName
    {
        get
        {
            return _FullName;
        }
        set
        {
            _FullName = value;
            OnPropertyChanged(nameof(FullName));
        }
    }


}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56956273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档