Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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_Data Binding_Xaml_Dataset - Fatal编程技术网

C# 绑定组合框的最佳方法

C# 绑定组合框的最佳方法,c#,wpf,data-binding,xaml,dataset,C#,Wpf,Data Binding,Xaml,Dataset,我将要开发一个大型项目,其中将包括大量的组合框 大多数组合框将绑定到与另一个数据集/表相关的数据库字段 比如说 我有以下两张表: 公司{CompanyID,CompanyName,main contact} 联系人{ContactID,ContactName} 当用户点击编辑公司时,会出现一个文本框来编辑公司名称,同时还会出现一个组合框 我目前的做法是将组合框绑定到联系人数据集,并在代码隐藏中手动更新Company MainContact字段 我是否可以将所选项目绑定到XAML中的Company

我将要开发一个大型项目,其中将包括大量的组合框

大多数组合框将绑定到与另一个数据集/表相关的数据库字段

比如说

我有以下两张表:

公司{CompanyID,CompanyName,main contact}
联系人{ContactID,ContactName}

当用户点击编辑公司时,会出现一个文本框来编辑公司名称,同时还会出现一个组合框

我目前的做法是将组合框绑定到联系人数据集,并在代码隐藏中手动更新Company MainContact字段

我是否可以将所选项目绑定到XAML中的Company MainContact字段,并将项目绑定到ContactName并消除隐藏的代码

这样做的原因是,当你开始在整个应用程序中创建100的组合框时,每次创建代码来进行更新时,它都会变得冗长乏味


这可能吗?

首先,我强烈建议您的应用程序使用MVVM设计模式。仅MVVM应用程序中的数据绑定和命令将为您节省大量时间

但不管怎样,我会离开我的肥皂盒,告诉你如何正确绑定你的组合框:

<ComboBox ItemsSource="{Binding Contacts}" DisplayMemberPath="ContactName" 
    SelectedValue="{Binding Path=Company.MainContact, 
    UpdateSourceTrigger=PropertyChanged}" 
    SelectedValuePath="ContactName"/>


如您所见,ItemsSource已绑定到您的联系人数据集,但当用户从列表中选择一个项目时,它将使用所选联系人更新Company.MainContact字段。

谢谢。我想知道MVVM对这有什么好处?这看起来很完美。我想知道你是否能在以下问题上提供帮助:谢谢!我研究了MVVM,现在决定实现它。但是谢谢你的这个有约束力的例子!希望我能给你更多的机会。没问题。我很高兴能帮上忙!