2011-12-23 12 views
-1

私は1つのフォームを開いているし、私はテーブルに移動し、1つのレコードを更新します。それから私は戻ってフォームをリフレッシュしますが、そのレコードは更新されません。データベースに追加されたレコードがフォームに更新されていませんか?

私はに結合されている形でDataGridの形をしています。リフレッシュでは、私が使用してデータベースからこの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を表示でき、バインディングとバインディングのプロパティをどのように表示することができれば助かります... –

+1

dbContextをどこかで更新していますか?オブジェクトに古いデータが残っている可能性があります。 – Feroc

答えて

1

は、コードをお見せ「リフレッシュ」を呼び出します。 dgRecords1.ItemsSource = filterViewedListは静的なコピーになります。私はUIが更新を認識していないと思う。 filteredProductListを公開ObservableCollection FilteredProductListとして公開し、FilteredProductListにバインドすると、UIはObservableCollectionの魔法によって更新を認識します。また、リスト全体を再作成するのではなく、1つだけを更新する方がクリーンです。

関連する問題