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'。 –