【发布时间】:2014-09-03 15:44:42
【问题描述】:
在 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>
& 我的 ObservableCollection<T> 在 ViewModel 中。这是由构造函数调用的方法填充的:
private ObservableCollection<String> _RegionShortCodeCollection;
public ObservableCollection<String> RegionShortCodeCollection
{
get { return _RegionShortCodeCollection; }
set
{
_RegionShortCodeCollection = value;
OnPropertyChanged("RegionShortCodeCollection");
}
}
关于为什么一个集合会发生这种情况而不是另一个集合的任何想法? 谢谢
【问题讨论】:
标签: c# wpf entity-framework xaml