将数据导入 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
,并且需要设置 UpdateSourceTrigger
至 LostFocus
.
SelectedValueBinding="{Binding Platform_Type, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
我构建了一个 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
,并且需要设置 UpdateSourceTrigger
至 LostFocus
.
SelectedValueBinding="{Binding Platform_Type, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"