Dharshini

Dharshini

  • NA
  • 24
  • 24.4k

How to set auto-refresh for master detail datagridview bound

Mar 7 2013 9:42 AM

I am developing a WPF Master detail application. I would like to auto refresh my page every 5 secs. I have used a Dispatcher to achieve this. everything works fine, but the selected item is highlighted only for those 5 seconds, after 5 secs the default selected row is being displayed on the top replacing my selecteditem.

I have tried setting the issynchronizedwithcurrentitem="False", but with this set to false, the selecteditem ( for Master-detail scenario) doesn't work.

this is what I have tried,

public partial class MainWindow : Window
{
    WpfApplication1.PersonsEntities personsEntities;
    System.Windows.Data.CollectionViewSource personViewSource;
    System.Data.Objects.ObjectQuery<WpfApplication1.person> personQuery;        

    public MainWindow()
    {
        InitializeComponent();
    }

    private ObjectQuery<person> GetpersonQuery(PersonsEntities personsEntities)
    {
        var personQuery = personsEntities.person;
        return personQuery as ObjectQuery<person>;
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        DispatcherTimer dispatcherTimer = new DispatcherTimer();
        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
        dispatcherTimer.Start();            
    }

    protected void dispatcherTimer_Tick(object sender, EventArgs e)
    {
        personsEntities = new WpfApplication1.PersonsEntities();
        personViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("personViewSource")));
        personQuery = this.GetpersonQuery(personsEntities);
        personViewSource.Source = personQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
    }
}

kindly help. 

Thanks

-Dharshini


Answers (1)