记录添加在数据库中未更新的表单中?

问题描述:

我有一个窗体打开,然后我去表并更新一个记录。然后我返回并刷新表单,但该记录未更新。记录添加在数据库中未更新的表单中?

我有一个DataGrid的形式,这是绑定到ObservableCollection。在刷新,我从数据库到这个ObservableCollection使用添加记录:

filteredProductList.Clear(); 
foreach(Formulation frm in dbContext.Formulations) 
{ 
    filterViewedList.Add(frm); 
} 

PageLoad事件如下:

private void loadData() 
{ 
    try 
    { 
     filterViewedList= new ObservableCollection<Formulation>(dbContext.Formulations); 
     dgRecords1.ItemsSource = filterViewedList; 
    } 

的XAML低于:

<DataGrid Height="387" x:Name="dgRecords1" Margin="0,0,64,0" 
    IsSynchronizedWithCurrentItem="True" Style="{DynamicResource StyleDatagrid}" 
    ClipboardCopyMode="None" ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}"     
    SelectionChanged="dgRecords1_SelectionChanged" Grid.Column="1" Grid.Row="3"> 

    <DataGrid.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/> 
    </DataGrid.Resources> 

    <DataGrid.Columns> 
     <DataGridTextColumn Width="110" Header="Code" Binding="{Binding FrmltnNo, Mode=TwoWay}" IsReadOnly="True" Foreground="Black"/> 
     <DataGridTextColumn Width="415" Header="Description" Binding="{Binding FrmltnName, Mode=TwoWay}" IsReadOnly="True" Foreground="Black"/> 

     <DataGridTextColumn Width="*" Header="Status" Binding="{Binding Status, Mode=TwoWay}" IsReadOnly="True" > 
      <DataGridTextColumn.CellStyle> 
       <Style TargetType="{x:Type DataGridCell}"> 
        <Setter Property="Foreground" Value="{Binding Converter={StaticResource FGColorKey}}"/> 
       </Style> 

      </DataGridTextColumn.CellStyle> 
     </DataGridTextColumn> 

    </DataGrid.Columns> 
</DataGrid> 
+2

如果您可以显示XAML以及您的绑定和绑定属性如何,这将有所帮助... – 2011-12-23 12:53:58

+1

您是否正在更新某处的dbContext?也许对象仍然有旧数据。 – Feroc 2011-12-23 12:56:23

显示你的代码调用“刷新”。 dgRecords1.ItemsSource = filterViewedList只是一个静态副本。我怀疑用户界面不知道更新。将filteredProductList公开为ObservableCollection FilteredProductList并绑定到FilteredProductList,然后UI将通过ObservableCollection的魔术知道更新。只更新一个而不是重新填充整个列表会更清洁。