簡體   English   中英

如何在C#WPF應用程序中訪問命令綁定?

[英]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;

您需要WindowsFormIntegrationCrystalDecisions.Windows.FormsCrystalDecisions.CrystalReports.Engine引用添加到Visual Studio項目中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM