Я пытаюсь использовать привязку MVVM для pdfviewer, но документ всегда оказывается пустым. Я запрашиваю поле БД, которое содержит байты файла PDF, и пытаюсь отобразить его в программе просмотра (я подтвердил, что файл не искажен, и он отображается нормально, если я сохраню его в формате PDF на мой рабочий стол).
Вот мои свойства MVVM:
private RadFixedDocument _currentDocument;
public RadFixedDocument CurrentDocument
{
get => _currentDocument; set => this.RaiseAndSetIfChanged(ref _currentDocument, value);
}
Вот метод, который я использую для заполнения свойства CurrentDocument:
var sqlStr = @"select top 1 * from FileManager order by ID desc;";
var file = await con.QuerySingleAsync<FMFile>(sqlStr);
var fileBytes = file.FileContent.ToArray(); // this is type byte[] - I confirmed that it has the correct contents
var ms = new MemoryStream(fileBytes); // ms gets filled properly
FormatProviderSettings settings = new FormatProviderSettings(ReadingMode.AllAtOnce);
PdfFormatProvider provider = new PdfFormatProvider(ms, settings);
CurrentDocument = provider.Import();
А вот как выглядит мой XAML:
<telerik:RadPdfViewerToolBar RadPdfViewer="{Binding ElementName=pdfViewer, Mode=OneTime}" />
<telerik:RadPdfViewer x:Name="pdfViewer"
Grid.Row="1"
DocumentSource="{Binding CurrentDocument, Mode=TwoWay}" />
Однако в программе просмотра ничего не отображается. Я подтвердил, что моя виртуальная машина подключена правильно, так как другие свойства отображаются нормально. Любой совет будет оценен.