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 プロパティを XAML の Cities Name の最初の要素として設定します。3. ViewModel の City プロパティにデフォルト値を設定します。
しかし、それらすべてが機能するわけではなく、最初の要素は常に空です。誰でも助けることができますか?