0

リストからデータを追加する方法は知っていますが、問題はそれを取得する方法です...?

id は、GlobalVar.cs で私のリストを宣言しました:

public static List<string> ViolationRefNumToPrint = new List<string>();

これが私のリストにデータを追加する際のコードビハインドです.....

    GlobalVar.ViolationRefNumToPrint.Clear();
    for (int i = 0; i < lvviolations.Items.Count; i++)
    {
        GlobalVar.ViolationRefNumToPrint.Add(((EmpViolationObject)lvviolations.Items[i]).VioRefNum);
    }

私の質問は、どうすればそれをリストに取得できるかです... :(

編集

ガイズ私は以下のコードを使用しました。これは @evanmcdonnal によって提供されます。実際、私はレポートでこれを使用するつもりです...そして私はDocumentViewerを使用しました

これが私のコードです....

        ReportDocument reportDocument = new ReportDocument();

        string ats = new DirectoryInfo(Environment.CurrentDirectory).Parent.Parent.FullName;

        StreamReader reader = new StreamReader(new FileStream(ats.ToString() + @"\Template\ReportViolation.xaml", FileMode.Open, FileAccess.Read));

        reportDocument.XamlData = reader.ReadToEnd();
        reportDocument.XamlImagePath = Path.Combine(ats.ToString(), @"Template\");
        reader.Close();


        DateTime dateTimeStart = DateTime.Now; // start time measure here
        List<ReportData> listData = new List<ReportData>();
        int i = 0;

        foreach (string item in GlobalVar.ViolationRefNumToPrint)
        {
            ReportData data = new ReportData();

            data.ReportDocumentValues.Add("PrintDate", DateTime.Now); 
            data.ReportDocumentValues.Add("EmpIDNum", NewIDNumber.ToString()); 
            data.ReportDocumentValues.Add("EmpName", NewEmpName.ToString()); 
            data.ReportDocumentValues.Add("EmpPosition", NewPosition.ToString()); 

            data.ReportDocumentValues.Add("PageNumber",(i + 1)); 
            data.ReportDocumentValues.Add("PageCount", GlobalVar.ViolationRefNumToPrint.Count.ToString()); 

            listData.Add(data);
            i++;
        }

        XpsDocument xps = reportDocument.CreateXpsDocument(listData);
        documentViewer.Document = xps.GetFixedDocumentSequence();

        // show the elapsed time in window title
        Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms";

ここでの問題は、このようなエラーが発生することです....

ここに画像の説明を入力

4

1 に答える 1

0

それをループして、必要なアイテムを検索する必要があります。

foreach (string item in ViolationRefNumToPrint)
{
      Console.Out(item);
}

代わりに特定のアイテムが必要な場合 (リストにオブジェクトがあると仮定するstring itemImLookinFor = "some nonsense";と、一致する条件付きでループを呼び出します。

foreach (MyObject item in ViolationRefNumToPrint)
{
      if (item.name == itemImLookinFor)
          //do something with this object
}
于 2012-11-16T02:13:30.573 に答える