C# WPF组合框MVVM数据绑定问题
我有以下类(我将保持简单。请假设我已实现INotifyPropertyChanged): 或者有没有更好的替代方案来实现这一点而不使用Linq语法?这是正确的方法吗?NewMovie.MovieLanguage对象是否必须来自LanguageList集合,以便组合框显示为SelectedItem?绑定是否执行一些哈希检查,还是尝试匹配LanguageID值?Combobox使用object.Equals在SelectedItem属性更新时显示ItemsSource中的项目,因此您有几种方法来实现所需的行为:C# WPF组合框MVVM数据绑定问题,c#,wpf,data-binding,mvvm,C#,Wpf,Data Binding,Mvvm,我有以下类(我将保持简单。请假设我已实现INotifyPropertyChanged): 或者有没有更好的替代方案来实现这一点而不使用Linq语法?这是正确的方法吗?NewMovie.MovieLanguage对象是否必须来自LanguageList集合,以便组合框显示为SelectedItem?绑定是否执行一些哈希检查,还是尝试匹配LanguageID值?Combobox使用object.Equals在SelectedItem属性更新时显示ItemsSource中的项目,因此您有几种方法来实现
AddMovieViewModel
{
public Movie NewMovie {get;set;}
public ObservableCollection<Language> LanguageList {get;set;}
}
Movie
{
public Language MovieLanguage {get;set;}
}
Langauge
{
public int LanguageID {get;set;}
public string LanguageName {get;set;}
}
<ComboBox ItemsSource="{Binding LanguageList}" Style="{x:Null}"
DisplayMemberPath="LanguageName"
SelectedValuePath="LanguageID"
SelectedItem="{Binding NewMovie.MovieLanguage, Mode=TwoWay}"
SelectedValue="{Binding NewMovie.MovieLanguage.LanguageID, Mode=TwoWay}" />
NewMovie.MovieLanguage = LanguageList.First(lang => lang.LanguageID == 2);