在WPF网格中有DataGridComboBoxColumn
但有一些绑定问题。我可以成功绑定到ObservableCollection<String>
属性但是当我尝试绑定到EF实体表的ObservableCollection<T>
中的列时,尽管绑定列是varchar,但我得到一个异常:
'DeferRefresh' is not allowed during an AddNew or EditItem transaction'
这是我的Xaml:
<DataGrid Margin="5" AutoGenerateColumns="False" ItemsSource="{Binding MembershipsCollection}">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Region" Width="SizeToHeader" DisplayMemberPath="{Binding RegionShortCodeCollection}">
<DataGridComboBoxColumn.ElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding DataContext.RegionShortCodeCollection, RelativeSource={RelativeSource AncestorType={x:Type vm:AccountsViewModel}}}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding DataContext.RegionShortCodeCollection, RelativeSource={RelativeSource AncestorType={x:Type v:AccountsView}}}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
<DataGridTextColumn Header="ProductCode" Binding="{Binding Path=ProductCode}" Width="SizeToHeader"/>
</DataGrid.Columns>
</DataGrid>
&安培;我在ViewModel中的ObservableCollection<T>
。这是由构造函数调用的方法填充的:
private ObservableCollection<String> _RegionShortCodeCollection;
public ObservableCollection<String> RegionShortCodeCollection
{
get { return _RegionShortCodeCollection; }
set
{
_RegionShortCodeCollection = value;
OnPropertyChanged("RegionShortCodeCollection");
}
}
关于为什么这种情况发生在一个集合而不是另一个集合的任何想法? 感谢
答案 0 :(得分:0)
我解决了这个问题。有一个&#39; INSERT&#39;触发基础数据库表,阻止从应用程序插入。我将触发器更改为“插入后”。允许实体框架在调用触发器之前保持更改。