我的问题是来自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