繁体   English   中英

更新ComboBox源不会更新ComboBox

[英]Updating ComboBox Source Doesn't Update ComboBox

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

人员中存储着各种东西,例如名字,姓氏,电话号码,地址等。

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

这是两张图片,以了解我的意思: https : //imgur.com/a/fP6apoX

最后,这是我的XAML代码:

ComboBox ItemsSource="{Binding PersonsList, UpdateSourceTrigger=PropertyChanged}" 
DisplayMemberPath="FullName"/>

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

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));
        }
    }


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM