Completed
Last Updated: 07 Aug 2024 08:11 by ADMIN
Release 2024.3.806 (2024 Q3)
Stenly
Created on: 02 Jul 2024 14:18
Category: PDFViewer
Type: Bug Report
1
PdfViewer: Changing the value of the DocumentSource property at runtime causes the RadPdfViewer to hang

Changing the value of the DocumentSource property at runtime causes the RadPdfViewer to display a busy indicator and not update the displayed PDF file with the new one.

To work this around, derive from the RadPdfViewer and create a new dependency property for the property of the type of PdfDocumentSource (for example, from your view model). In its callback method, call the SetDocumentSource method of the derived RadPdfViewer by passing the new value:

public class MyPdfViewer : RadPdfViewer
{
    public PdfDocumentSource PdfDocumentSource
    {
        get { return (PdfDocumentSource)GetValue(PdfDocumentSourceProperty); }
        set { SetValue(PdfDocumentSourceProperty, value); }
    }

    public static readonly DependencyProperty PdfDocumentSourceProperty =
        DependencyProperty.Register("PdfDocumentSource", typeof(PdfDocumentSource), typeof(MyPdfViewer), new PropertyMetadata(new PropertyChangedCallback(OnDocumentSourceChanged)));

    private static void OnDocumentSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        MyPdfViewer viewer = (MyPdfViewer)d;

        viewer.SetDocumentSource((PdfDocumentSource)e.NewValue);
    }
}
<local:MyPdfViewer x:Name="pdfViewer" PdfDocumentSource="{Binding MyViewModelPropertyOfTypePdfDocumentSource}" />
0 comments