Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定可编辑组合框并检测wpf中插入的文本_C#_Wpf_Mvvm_Combobox_Wcf Binding - Fatal编程技术网

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; }
    }