Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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# 将集合绑定到ComboBox和DataGrid_C#_Wpf_Combobox_Datagrid_Mahapps.metro - Fatal编程技术网

C# 将集合绑定到ComboBox和DataGrid

C# 将集合绑定到ComboBox和DataGrid,c#,wpf,combobox,datagrid,mahapps.metro,C#,Wpf,Combobox,Datagrid,Mahapps.metro,我有两个来自CSV文件和RESTAPI的集合-设备和应用程序。类型为“Device”的每个对象都通过属性“ApplicationId”绑定到其应用程序。我能够显示DataGrid中的每个设备,并且我希望允许用户从ComboBox(放置在每行中)中选择分配给每个设备的应用程序,并将它们发送到API。我想在组合框“ApplicationName”中显示,并在“Device”中选择设置“ApplicationId” 公共类设备 { 公共字符串名称{get;set;} 公共字符串ApplicationI

我有两个来自CSV文件和RESTAPI的集合-设备和应用程序。类型为“Device”的每个对象都通过属性“ApplicationId”绑定到其应用程序。我能够显示DataGrid中的每个设备,并且我希望允许用户从ComboBox(放置在每行中)中选择分配给每个设备的应用程序,并将它们发送到API。我想在组合框“ApplicationName”中显示,并在“Device”中选择设置“ApplicationId”

公共类设备
{
公共字符串名称{get;set;}
公共字符串ApplicationId{get;set;}//设置此
//...
}
公共类应用程序
{
公共字符串名称{get;set;}
将公共字符串ApplicationId{get;set;}//设置为此
//...
}
公共类NewDeviceViewModel
{
公共字典应用程序{get;set;}//从应用程序集合中提取
公共ObservableCollection设备{get;set;}//数据网格的内容
}
公共主窗口(字符串设备CSV)
{
初始化组件();
模拟网格(devicesCsv);
devices.ItemsSource=NewDevices.devices;
AppSelection.ItemsSource=NewDevices.Applications;
} 

所以,我填充了DataGrid和ComboBox,但在将ComboBox中的“Value”绑定到DataGrid行中的“ApplicationId”时遇到了问题。另外,我不知道如何在ComboBox中只显示应用程序名称(现在是“[Key,Value]”),以及如何将名称添加到ComboBox列。如果有必要的话,我正在使用mahaps.metro。

在DataGridComboBox列中,您可以给出SelectedValueBinding和SelectedValuePath

<DataGridComboBoxColumn x:Name="appSellection" SelectedValueBinding="{Binding ApplicationId}" SelectedValuePath="Value" DisplayMemberPath="Key"/>

<DataGridComboBoxColumn x:Name="appSellection" SelectedValueBinding="{Binding ApplicationId}" SelectedValuePath="Value" DisplayMemberPath="Key"/>