记录添加在数据库中未更新的表单中?
问题描述:
我有一个窗体打开,然后我去表并更新一个记录。然后我返回并刷新表单,但该记录未更新。记录添加在数据库中未更新的表单中?
我有一个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>
答
显示你的代码调用“刷新”。 dgRecords1.ItemsSource = filterViewedList只是一个静态副本。我怀疑用户界面不知道更新。将filteredProductList公开为ObservableCollection FilteredProductList并绑定到FilteredProductList,然后UI将通过ObservableCollection的魔术知道更新。只更新一个而不是重新填充整个列表会更清洁。
如果您可以显示XAML以及您的绑定和绑定属性如何,这将有所帮助... – 2011-12-23 12:53:58
您是否正在更新某处的dbContext?也许对象仍然有旧数据。 – Feroc 2011-12-23 12:56:23