0

私はしようとしPrintます。そこで、次のように WPF ウィンドウを作成しました。List of objectsCrystal Report

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

namespace Winlease.UI
{
    /// <summary>
    /// Logique d'interaction pour EcheancierPrint.xaml
    /// </summary>
    public partial class EcheancierPrint : Window
    {
        List<T> ListToPrint = null;

        public EcheancierPrint(List<T> lst) : base()
        {
            ListToPrint = lst;
        }

        public EcheancierPrint()
        {
            InitializeComponent();
        }

        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {
            ReportDocument rd = new ReportDocument();
            rd.Load("../../Echeancier.rpt");
            rd.SetDataSource(ListToPrint);
        }
    }
}

このウィンドウは、別のウィンドウのボタンの Click イベント ハンドラーから呼び出されます。コードは次のとおりです。

private void cmdPrint_Click(object sender, RoutedEventArgs e)
{
    EcheancierPrint pe = new EcheancierPrint(echeancier);
}

EcheancierList of Object呼ばれるものEcheanceです。型"T"とメソッドInitializeComponentは赤い下線が引かれ、WPF コンパイラから受け入れられません。命令の同じ動作:

EcheancierPrint pe = new EcheancierPrint(echeancier);
4

1 に答える 1

0

が具象型でない場合はジェネリック型としてT宣言する必要がありますが、現在 XAML はジェネリックをサポートしていません。(XAML 2009 ではサポートされますが、コンパイル済みの XAML ではサポートされません)。 さらに、あなたの場合、タイプはオープンジェネリックタイプです。EcheancierPrintEcheancierPrint<T>

また、パーセンテーション オブジェクト (UI コントロール) とビジネス オブジェクトを混在させる必要はありますか?

于 2013-04-04T15:59:32.240 に答える