Dies ist meine erste Frage zu Stackoverflow und ich bin völlig neu in der Programmierung in C#, also bitte tragen Sie mit mir. Ich habe eine Anwendung mit WPF erstellt, in der ich eine Liste von Dateien mit der Erweiterung .rpt in einem Datagrid angezeigt habe. Das Datagrid enthält die Liste der Dateinamen und es gibt auch eine Checkbox-Spalte im Datagrid. Diese Dateien werden im Grid dynamisch aus einem Ordnerbrowser gefüllt, wenn ich auf eine Schaltfläche klicke. Ich stecke auf Seiten davon, diese Dateien zum Drucken zurückzuholen, wenn ich auf eine zweite Schaltfläche klicke (Drucken, da ich einen Dienst aufrufen muss, um die ausgewählten Dateien zu drucken). Ausgewählte Zeilen mit Berichtsdateien aus einem WPF-Datagrid abrufen Klicken Sie auf
Dies ist der Code-Schnipsel, die ich bis jetzt versucht:
public partial class MainWindow : Window
{
public class ReportFile
{
public string Path { get; set; }
public string FileName { get; set; }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string inputPath = AppDomain.CurrentDomain.BaseDirectory;
System.Windows.Forms.FolderBrowserDialog fldDlg = new System.Windows.Forms.FolderBrowserDialog();
fldDlg.SelectedPath = AppDomain.CurrentDomain.BaseDirectory;
DialogResult result = fldDlg.ShowDialog();
foreach (string str in Directory.GetFiles(fldDlg.SelectedPath))
{
ReportFile reportFile = new ReportFile();
reportFile.Path = str;
reportFile.FileName = System.IO.Path.GetFileName(str);
dataGrid1.Items.Add(reportFile);
}
}
private void button_Click_1(object sender, RoutedEventArgs e)
{
foreach (ReportFile drv in dataGrid1.SelectedItems.OfType<ReportFile>())
{
if (drv != null)
{
DataRow row = drv.Row;
Title = row.ItemArray[3].ToString();
System.Windows.MessageBox.Show(Title.ToString());
}
}
var TransactionFactory = new TransactionFactory();
var Transaction = TransactionFactory.NewTransactionString();
var EnvironmentValue = (string)cmbEnvironment.SelectedValue;
var CirieEngineServiceClientFactory = new CirieEngineServiceClientFactory(EnvironmentValue);
var CirieEngineServiceClient = CirieEngineServiceClientFactory.NewCirieEngineServiceClient();
var Form = new Cirie.Form()
{
Path = string.Empty,
Title = string.Empty
};
var PackageID = Convert.ToInt16(txtPackageID.SelectedText);
var Generation = Convert.ToInt16(txtGeneration.SelectedText);
var formList = new List<Cirie.Form>();
var stream = CirieEngineServiceClient.PrintFormCollection
(Transaction,
new Collection<Cirie.Form>(formList),
PackageID,
Generation
);
}
}
Aber ich bin nicht sicher, ob es richtig ist, da es eine Ausnahme geworfen: Kann nicht das Objekt des Typs ‚Report‘ zu gieße Typ 'System.Data.DataRowView'
Ich würde wirklich gerne Hilfe zu diesem bitte!
Dies beschlossen, den Fehler! Danke. Ich wollte auch wissen, wie ich die Daten abrufen und per Knopfdruck an den Druckdienst senden könnte. Da der Code, den ich gerade habe, es schafft, die abgerufenen Dateien in einem Meldungsfeld anzuzeigen. – user0594
Ich habe zwar schon geantwortet, wie man die Daten holt? Oder welche Daten meinst du? – mm8
Ich habe meine Frage bearbeitet und den Code hinterher hinzugefügt, wenn das besser hilft zu verstehen, wonach genau ich suche. – user0594