[英]How to access commandbindings in c# WPF application?
我正在使用C#WPF應用程序來顯示Crystal報表,並且我想在單擊Crystal Report Viewer刷新按鈕時調用一個函數。
所以在查看器屬性中,我將命令綁定設置為刷新,並且應用程序XAML如下所示
<Grid>
<cr:CrystalReportsViewer Name="reportViewer">
<cr:CrystalReportsViewer.CommandBindings>
<CommandBinding Command="NavigationCommands.Refresh"/>
</cr:CrystalReportsViewer.CommandBindings>
</cr:CrystalReportsViewer>
</Grid>
任何想法如何捕獲此刷新事件並調用命令處理程序?
問候
cr:CrystalReportViewer
不是WPF控件; 因此,它沒有CommandBindings
屬性。
為了在單擊“刷新”按鈕時收到通知,您可以按照以下步驟操作:
XAML:
<Window x:Class="CRTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cr="clr-namespace:CrystalDecisions.Windows.Forms;assembly=CrystalDecisions.Windows.Forms"
Title="Window1" Height="300" Width="300">
<Grid>
<WindowsFormsHost>
<cr:CrystalReportViewer x:Name="reportViewer" ReportRefresh="OnReportRefresh"/>
</WindowsFormsHost>
</Grid>
</Window>
后台代碼:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
// Load a sample report:
ReportDocument doc = new ReportDocument();
doc.Load(@"C:\Temp\test.rpt");
reportViewer.ReportSource = doc;
}
private void OnReportRefresh(object source, CrystalDecisions.Windows.Forms.ViewerEventArgs e)
{
MessageBox.Show("Refresh clicked!");
}
}
您的后台代碼必須包含
using CrystalDecisions.CrystalReports.Engine;
您需要WindowsFormIntegration
, CrystalDecisions.Windows.Forms
和CrystalDecisions.CrystalReports.Engine
引用添加到Visual Studio項目中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.