Запись добавлена ​​в базу данных, не обновлена ​​в форме? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть одна открытая форма, а затем я иду к таблице и обновляю одну запись.Затем я возвращаюсь и обновляю форму, но эта запись не обновляется.

У меня есть 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>

1 Ответ

1 голос
/ 23 декабря 2011

Показать код, который вы называете «обновить».dgRecords1.ItemsSource = filterViewedList просто будет статической копией.Я подозреваю, что пользовательский интерфейс не знает об обновлении.Предоставьте фильтр FilterProductList как общедоступный ObservableCollection FilteredProductList и свяжите его с FilteredProductList, и тогда пользовательский интерфейс узнает об обновлении с помощью волшебства ObservableCollection.И было бы чище обновлять только один, а не заново заполнять весь список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...