ComboBox WPF SelectedValuePath和ObservableCollection

时间:2013-01-18 08:29:02

标签: wpf combobox

我的问题是来自SelectedValuePath的正确数据在ComboBox中显得如此短暂,然后消失。为什么?但得到这个: - 如果我改变SelectedValuePath =让我们说“x”当然是一个不存在的属性,那么fullname将按预期保留在ComboBox中。我错过了什么?

我现在发现,实际上它并没有显示正确的项目,只是列表中的第一个联系人。

这是代码。

<ComboBox ItemsSource="{Binding CustomersContacts, diag:PresentationTraceSources.TraceLevel = High}" 
          DisplayMemberPath="FullName"  
          SelectedValue="{Binding Path = Customer.lngMainContactID}" 
          SelectedValuePath="lngContactID" />

DataContext是

DataContext="{Binding Source={StaticResource MainScreenObject}}"

等同于

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    <vm:MainScreen x:Key="MainScreenObject" />

xmlns:vm="clr-namespace:Fluent2.ViewModel"

和相关财产

    public ObservableCollection<Contact> CustomersContacts
    {
        get
        {
            return customersContacts;
        }
        set
        {
            customersContacts = value;
            OnPropertyChanged("CustomersContacts");
        }
    }

和联系对象

    #region Properties
    public int lngContactID { get; set; }
    public Nullable<int> lngCustomerID { get; set; }
    public string strForeName { get; set; }
    public string strSurName { get; set; }
    public string strTelDirect { get; set; }
    public string strEmail { get; set; }

    public virtual Customer Customer { get; set; }

    public string FullName
    {
        get
        {
            return strSurName + ", " + strForeName;
        }
    }
    #endregion

0 个答案:

没有答案