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