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# 将组合框项插入数据库列_C#_Wpf_Mvvm_Combobox - Fatal编程技术网

C# 将组合框项插入数据库列

C# 将组合框项插入数据库列,c#,wpf,mvvm,combobox,C#,Wpf,Mvvm,Combobox,是否可以将组合框中的值插入数据库中的特定列 例如,如果我有带有项目的组合框,项目1,项目2,项目3,并且我想将它们绑定到某个列:列1,我想管理的是:如果选择了项目1,当我点击按钮时,我想在列1中插入该项目的值,否则如果所选项目是项目2,则我想在列1中插入项目2的值,以此类推 现在我知道这个问题写得不是很好,但我只是想知道这是否可行 我一直在用谷歌搜索这类问题,但找不到解决办法。我知道如何将列记录插入到组合框项目列表中,但不知道相反的方法 我还想说,我在WPF/WCF/MVVM应用程序中遇到了这个

是否可以将
组合框中的值插入数据库中的特定列

例如,如果我有带有项目的
组合框
项目1项目2项目3,并且我想
将它们绑定到某个
列1,我想管理的是:如果选择了项目1,当我点击
按钮时,我想在列1中插入该项目的值,否则如果所选项目是项目2,则我想在列1中插入项目2的值,以此类推

现在我知道这个问题写得不是很好,但我只是想知道这是否可行

我一直在用谷歌搜索这类问题,但找不到解决办法。我知道如何将
记录插入到
组合框
项目列表中,但不知道相反的方法


我还想说,我在WPF/WCF/MVVM应用程序中遇到了这个问题,所以我想知道这是否可能(以及如何)以这种方式解决它。

ofc you can。在按钮单击事件中,您只需获取组合框的选定值并保存它

var selectedItem = ComboBoxName.SelectedItem;
但是,如果已将组合框与对象绑定,则可以将其强制转换

var selectedItem = ComboBoxName.SelectedItem as (objecttypehere)
更新 我错过了你使用MVVM的机会。然后在视图中,您可以使用将组合框与所选项目绑定

<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding TheSelectedItem}">
     //Itemtemplates.       
</ComboBox>

//项目模板。
在viewModel中,只访问您在我的测试用例“TheSelectedItem”属性中与selecteditem绑定的属性


省省吧

此解决方案基于MVVM模式。 将组合框控件的选定项绑定到视图模型中的某个属性。 所以你的观点应该是这样的

    <ComboBox ItemsSource="{Binding SomeItems,UpdateSourceTrigger=PropertyChanged,NotifyOnSourceUpdated=True}" SelectedValue="{Binding SelectedItemBinding,UpdateSourceTrigger=PropertyChanged,NotifyOnSourceUpdated=True}" />

    <Button Command={Binding ButtonClickCommand} ..../>
  • 在combobox中,您可以存储带有前缀的值(col1_12、col2_24等)
  • 单击按钮时,您应该解析值:将其在前缀和原始值上分开
  • 因此,您可以将值写入所需列:

    开关(前缀){ 案例“col1”:table.column1=值;中断; 案例“col2”:table.column2=值;中断; //等 }


  • 为了澄清您的问题,表单上有两个控件,一个是combobox,另一个是button。您希望将combobox中的选定值保存到数据库表的col1字段中。我的理解正确吗???是的,没错。让我更具体一点:想象一下,我有一个组合框,上面有人的名字:乔治、詹姆斯、迈克尔。并且有一个按钮插入,数据库中的一些表的“name”列为空。如果我在组合框列表中选择“Michael”,请按“插入”按钮,然后我希望在“名称”列中插入“Michael”。
        public class ViewModel : //implement notify property changed and ICommand
        {
            public RelayCommand ButtonClickCommand
            {
                 get new RelayCommand(EventHandlerToBeCalled);
            }
    
    
            public string SelectedItemBinding
            {
                 get;
                 set
                 {
                      //notify property changed.
                 }
            }
    
            //method called when button is clicked.
            private void EventHandlerToBeCalled()
            {
                  //here set the SelectedItemBinding to a column.
            }
        }