我该如何刷新数据网格?

时间:2014-02-09 15:33:58

标签: c# wpf datagridview datagrid wpfdatagrid

WPF的完全初学者所以请耐心等待。

添加了数据源'ActionResult'并通过数据网格在屏幕上显示。添加一个“更新”按钮,单击该按钮将刷新数据网格,将手动更改更新到数据库表。

//in MainWIndow.xaml.cs:
private void button1_Click(object sender, RoutedEventArgs e)
{
   actionResultsDataGrid.Items.Refresh();
}

我已经介入了这个,它只是提供了数据网格中当前记录的详细信息,而不是更新。

我是否需要进行某种数据绑定?请指教。感谢

从研究中我需要某种ObservableCollection和属性更改。这是必要的吗?我可以不刷新视图吗?

修改 还尝试使用以下内容:

ActionResult.CreateActionResult(100, "todo", "sales.dat",
                        System.DateTime.Now, "success", "no reason");

actionResultsDataGrid.ItemsSource = null;
actionResultsDataGrid.UpdateLayout();

Model1.AcceptChanges();
DataGrid.Items.Refresh();
actionResultsDataGrid.Items.Refresh();
actionResultsDataGrid.UpdateLayout();

actionResultsDataGrid.ItemsSource = null;
actionResultsDataGrid.ItemSource = actionResultsDataGrid;

BindingOperations.GetBindingExpressionBase(myTextBox, 
                        TextBox.TextProperty).UpdateTarget();

我的XAML

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:my="clr-namespace:WpfApplication2" Loaded="Window_Loaded">
<Window.Resources>
    <CollectionViewSource x:Key="actionResultsViewSource" d:DesignSource="{d:DesignInstance my:ActionResult, CreateList=True}" />
</Window.Resources>
<Grid DataContext="{StaticResource actionResultsViewSource}">
    <DataGrid AutoGenerateColumns="True" EnableRowVirtualization="True" ItemsSource="{Binding}" Name="actionResultsDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" Margin="0,0,0,85">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="idColumn" Binding="{Binding Path=Id}" Header="Id" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="actionColumn" Binding="{Binding Path=Action}" Header="Action" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="fileColumn" Binding="{Binding Path=File}" Header="File" Width="SizeToHeader" />
            <DataGridTemplateColumn x:Name="timeStampColumn" Header="Time Stamp" Width="SizeToHeader">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=TimeStamp, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn x:Name="resultColumn" Binding="{Binding Path=Result}" Header="Result" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="reasonColumn" Binding="{Binding Path=Reason}" Header="Reason" Width="SizeToHeader" />
        </DataGrid.Columns>
    </DataGrid>
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="388,253,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>

0 个答案:

没有答案