private void ControlRevisionView_Loaded(object sender, RoutedEventArgs e)
        {
            var record = (Record)DataContext;

            Title = string.Format("Id: {0}, Rev: {1}", record.Owner.Id, record.Rev);
            var controller = ControlRevisionsView.GetController(this);

            Task.Factory.StartNew(() =>
            {
                record.EnsureDetails();
            }).
            ContinueWith(r => {
                if (r.Exception == null)
                {
                    Dispatcher.Invoke(
                        () =>
                    {
                        User = record.Details.ChangedBy +
                               (record.Details.ChangedBy == record.Details.AuthorizedAs ? null : " via " + record.Details.AuthorizedAs);
                        _fieldsGrid.ItemsSource      = record.Details.Fields;
                        _attachmentsGrid.ItemsSource = record.Details.Attachments;
                        _changesetsGrid.ItemsSource  = record.Details.Changesets;

                        ApplyFilter(OnlyChanged);
                    });
                }
                else
                {
                    Dispatcher.Invoke(() => controller.Log(Convert.ToString(r.Exception)));
                }
            });
        }
        private void ChangesetEventSetterOnHandler(object sender, RoutedEventArgs e)
        {
            var changeset  = (Changeset)((Hyperlink)e.OriginalSource).DataContext;
            var controller = ControlRevisionsView.GetController(this);

            controller.ShowChangeset(changeset.Id);
        }