簡體   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