Как получить доступ к командным привязкам в приложении c # WPF? - PullRequest
0 голосов
/ 29 января 2012

Я использую приложение 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>

есть идеи, как перехватить это событие обновления и вызвать обработчик команд?

Привет

1 Ответ

0 голосов
/ 29 января 2012

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.

...