3
插入的文本我有一个ComboBox
,它看起来像这样:结合可编辑ComboBox和检测WPF
<ComboBox
ItemsSource="{Binding JobList}"
SelectedValue="{Binding Job,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
DisplayMemberPath="Title"
SelectedValuePath="Id"
IsEditable="True"
StaysOpenOnEdit="True"
/>
和我ViewModel
看起来像结合这一个:
public class ViewModel {
// this will fill from a database record for a person
public Job Job {
get { return _job; }
set {
if(value == _job) return;
_job = value;
OnPropertyChanged(() => Job);
}
}
// this will fill from all jobs records in database
public ObservableCollection<Job> JobList
{ /* do same as Job to implementing INotifyPropertyChanged */ }
}
和Job
是:
public class Job {
public int Id { get; set; }
public string Title { get; set; }
}
真的,我想填补ComboBox
附有工作列表。因此,如果用户指定的Job
在列表中,则用户可以从列表中选择它,否则,他在ComboBox
中输入新的Job.Title
,视图模型通知它,并且创建新的Job
项目并且还将其添加到JobList
。
你有什么想法吗?你能帮我吗?
那究竟究竟是不是工作?从你发布的内容看,一切看起来都正确另外,你可以发布你如何设置你的视图的DataContext? – shriek
看@Simon_D建议[这里](http://stackoverflow.com/questions/3373239/wpf-editable-combobox) –
问题是'Job'属性的类型是'Job'和组合框文本输入可以不被viewmodel检测到。如果我将类型为'string'的'Job'设置为并绑定了'ComboBox.Text'属性,那么我无法检测到所选项目的'Id'。 –