2014-09-03 73 views
0

在WPF網格中得到DataGridComboBoxColumn,但有一些綁定問題。我可以成功地綁定到一個ObservableCollection<String>屬性,但是當我試圖綁定到一個EF實體表的ObservableCollection<T>一個專欄中,我得到一個例外,儘管綁定列是一個varchar:WPF DataGridComboBoxColumn綁定:'DeferRefresh'在AddNew或EditItem事務中不允許?

'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>。這是通過從構造調用的方法填充:

private ObservableCollection<String> _RegionShortCodeCollection; 
public ObservableCollection<String> RegionShortCodeCollection 
{ 
    get { return _RegionShortCodeCollection; } 
    set 
    { 
     _RegionShortCodeCollection = value; 
     OnPropertyChanged("RegionShortCodeCollection"); 
    } 
} 

任何想法,爲什麼這是一個集出現而不是其他? 謝謝

回答

0

我解決了這個問題。底層數據庫表上有一個'INSERT'觸發器,它阻止了應用程序的插入。我將觸發器更改爲「AFTER INSERT」,允許Entity Framework在調用觸發器之前保持更改。

相關問題