0
我在stackoverflow和MSDN中搜索了很長時間,我不確定標記的答案爲什麼適用於其他人,但對我無效。爲什麼我的組合框的第一個項目總是空的
我有一個市級這樣
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public static List<City> GetDefaultCities()
{
List<City> cities = new List<City>();
cities.Add(new City { Id = 1, Name = "New York" });
cities.Add(new City { Id = 2, Name = "Chicago" });
cities.Add(new City { Id = 3, Name = "Miami" });
cities.Add(new City { Id = 4, Name = "Houston" });
cities.Add(new City { Id = 5, Name = "Dallas" });
return cities;
}
}
在我的ViewModel屬性:
private List<City> cities;
public List<City> Cities
{
get { return City.GetDefaultCities(); }
set { cities = value; }
}
private City selectedCity;
public City SelectedCity
{
get { return selectedCity; }
set
{
if (selectedCity != value)
{
selectedCity = value;
RaisePropertyChanged("SelectedCity");
}
}
}
的XAML在我看來
<ComboBox ItemsSource="{Binding Cities}" Width="100" Height="30"
DisplayMemberPath="Name"
SelectedValuePath="Id"
SelectedItem="{Binding SelectedCity}"
/>
我曾嘗試3級的解決方案: 1.在XAML中將SelectedIndex設置爲0; 2.將Text Property設置爲XAML中城市名稱的第一個元素; 3.在ViewModel中將默認值設置爲City屬性;
但所有這些都不起作用,第一個元素總是空的。任何人都可以幫忙?
您是否試圖將selectedvalue而不是selecteditem綁定到SelectedId並通過vm設置SelectedId? – dnr3
@ dnr3,不能請提供更多細節?如何在vm中設置SelectedId – James
我的意思是在你的vm中創建另一個名爲SelectedId的屬性來綁定到ComboBox的SelectedValue,因爲ComboBox的SelectedItem可能不是你正在尋找的那個(該值可能是一個ComboBoxItem和不是城市的一個實例) – dnr3