C# Telerik PdfViewer-绑定到PDF源
我也在telerik的网站上试过这些样品,但没有用。所以我有这个代码:C# Telerik PdfViewer-绑定到PDF源,c#,wpf,mvvm,telerik,C#,Wpf,Mvvm,Telerik,我也在telerik的网站上试过这些样品,但没有用。所以我有这个代码: public ICommand EmailPopUpCmd { get; set; } private void EmailPopUp(object sender) { //ToDo: pdf viewer pop up selectedDataRow = (DataRow)sender; var window = new Window(); w
public ICommand EmailPopUpCmd { get; set; }
private void EmailPopUp(object sender) {
//ToDo: pdf viewer pop up
selectedDataRow = (DataRow)sender;
var window = new Window();
window.Content = new EmailView() { DataContext = this}; //shares the same data context
MemoryStream str = new MemoryStream();//= new MemoryStream(pdfAsByteArray);//new System.Uri(@"pack://application:,,,/Resources/TestPDF.pdf", System.UriKind.RelativeOrAbsolute);
using(FileStream fs = File.OpenRead(@"C:\Source\UI.MailViewer\Resources\TestPDF.pdf")) {
str.SetLength(fs.Length);
fs.Read(str.GetBuffer(),0, (int)fs.Length);
}
AttachmentPath = new PdfDocumentSource(str);
if (window.ShowDialog() == true) {
//from child back to parent
}
}
C:\Source\UI.MailViewer\Resources\TestPDF.pdf
是我的PDF所在的位置,我将其绑定到UI,如下所示:
现在使用这个,我得到了一个没有设置为实例错误的对象。你知道为什么吗?使用调试转换器,创建的PDF文档的值为空,为什么会发生这种情况?好的,为了帮助其他用户,我在telerik论坛上找到了这一点:() 要使RadPdfViewer在WinForms应用程序中工作,还有一件事要做:您应该确保在初始化用户控件之前初始化应用程序.Current属性,例如,在用户控件的构造函数中添加以下代码:
public PdfViewerControl() {
if (Application.Current == null)
new Application();
InitializeComponent();
}
这在WPF中也适用。在ViewModel中创建窗口不是MVVM。您应该在codebehind中执行此操作。我知道,我希望在清理和排序代码之前解决上述问题。
public PdfViewerControl() {
if (Application.Current == null)
new Application();
InitializeComponent();
}