将数据导入DatagridComboBoxColumn不会更新组合列表值
本文关键字:更新 组合 列表 数据 导入 DatagridComboBoxColumn | 更新日期: 2023-09-27 18:03:35
我构建了一个DataGrid,它包含一个自定义的ComboBoxColumn,当我用鼠标选择它时,它会显示并选择适当的字段,但是在ComboBox失去焦点后,它会重置为列表中的第一项。此外,当我从Excel电子表格中导入数据时,ComboBox不会更改以匹配工作表中的值。
注意:我计划重用这个类来为不同的数据创建一系列的combobox。
是什么阻止组合框接受新值?
ComboList类
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
解决了字段不接受新值的部分问题。[链接](DataGridComboBoxColumn不更新模型WPF)
我仍然留下的问题,为什么从Excel导入时,组合框从未更新;每行为空,即使组合框中有合适的数据。
XAML组合框SelectedValueBinding
必须设置为DataGrid组合框控件名称,而不是通用组合框FieldID
, UpdateSourceTrigger
需要设置为LostFocus
。
SelectedValueBinding="{Binding Platform_Type, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"