C# 绑定可编辑组合框并检测wpf中插入的文本
我有一个组合框,看起来像这样:C# 绑定可编辑组合框并检测wpf中插入的文本,c#,wpf,mvvm,combobox,wcf-binding,C#,Wpf,Mvvm,Combobox,Wcf Binding,我有一个组合框,看起来像这样: <ComboBox ItemsSource="{Binding JobList}" SelectedValue="{Binding Job,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" DisplayMemberPath="Title" SelectedValuePath="Id" IsEditable="True" StaysOpenOnEdit="Tru
<ComboBox
ItemsSource="{Binding JobList}"
SelectedValue="{Binding Job,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
DisplayMemberPath="Title"
SelectedValuePath="Id"
IsEditable="True"
StaysOpenOnEdit="True"
/>
而作业
是:
public class Job {
public int Id { get; set; }
public string Title { get; set; }
}
真的,我想用作业列表填充组合框。因此,如果用户指定的作业
在列表中,用户可以从列表中选择它,否则,他将在组合框
中输入一个新的作业。标题
,视图模型将通知它,并创建一个新的作业
项,并将其添加到作业列表
你知道吗?你能帮我吗
在viewModel中创建类似“SelectedJobName”的字符串属性
将此属性绑定到Combobox.Text
无论在何处使用输入的值(命令、演示者),请检查所选值是否为null,以及selectedJobName属性值是否不匹配
那么到底是什么不起作用呢?从你发布的内容来看,一切似乎都是正确的。另外,您可以发布如何设置视图的DataContext吗?查看@Simon\D建议问题在于Job
属性的类型为Job
,并且组合框文本输入无法通过viewmodel检测到。如果我设置类型为string
的Job
并绑定ComboBox.Text
属性,则无法检测所选项目的Id
。延迟但良好:我以前也这样做过。但你是新来的,所以我接受并投票支持你的答案。欢呼
public class Job {
public int Id { get; set; }
public string Title { get; set; }
}