将数据导入 DatagridComboBoxColumn 不会更新组合列表值

Importing data into DatagridComboBoxColumn does not update combo list value

我构建了一个 DataGrid,其中包含一个自定义 ComboBoxColumn,当​​我用鼠标 select 它时,它显示并 selects 正确的字段,但在 ComboBox 之后重置为列表中的第一项失去焦点。此外,当我从 Excel 电子表格导入数据时,组合框不会更改以匹配工作表中的值。

注意:我打算重新使用这个 class 来为不同的数据创建一系列组合框。

什么阻止组合框接受新值?

组合列表class

namespace x.Models
{
  public class ComboList
  {
    public int FieldID {get;set;}
    public string FieldString {get;set;}
  }
}

XAML组合框代码

<DataGridComboBoxColumn Header="Platform Type" x:Name="PlatformTable" SelectedValueBinding="{Binding FieldID}" DisplayMemberPath="FieldString" SelectedValuePath="1" />

代码(后面)

public partial class MainWindow: Window
{
  public ObservableCollection<Models.ComboList> PlatformCombo {get;set;}
  public MainWindow()
  {
    PlatformCombo = new ObservableCollection<Models.ComboList>()
    {
      new Models.ComboList() {FieldID=1,FieldString="Mounted"},
      new Models.ComboList() {FieldID=2,FieldString="Dismounted"}
    };
    PlatformTable.ItemsSource = PlatformCombo;
}

样本Excel数据

Platform Type
1
2

SelectedValueBinding 更改为 SelectedItemBinding 修复了字段不接受新值的部分问题。 [link] (DataGridComboBoxColumn not updating model WPF)

我仍然有一个问题,为什么从 Excel 导入时,组合框永远不会更新;每行留空,即使组合框有适当的数据。

必须将 XAML 组合框 SelectedValueBinding 设置为 DataGrid 组合框控件名称,而不是通用组合框 FieldID,并且需要设置 UpdateSourceTriggerLostFocus.

SelectedValueBinding="{Binding Platform_Type, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"