Zum Inhalt springen

WPF-Controls in Windows Forms app einbinden [C#]


Gateway_man

Empfohlene Beiträge

hi leute,

ich interessiere mich momentan für die WPF Controls und habe mich diesbezüglich eingelesen.

Ich wollte nun ein WPF Control (Listbox) in meine Windows Form Anwendung einfügen. Das sieht bis jetzt ungefähr so aus:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {


            System.Windows.Forms.Integration.ElementHost host = new  System.Windows.Forms.Integration.ElementHost();

            System.Windows.Controls.ListBox wpfListBox = new System.Windows.Controls.ListBox();

            for (int i = 0; i < 10; i++)

            {

                wpfListBox.Items.Add("Item " + i.ToString());

            }

            host.Controls.Add(wpfListBox); //hier wird der Fehler angezeigt

            host.Dock = DockStyle.Fill;

            this.Controls.Add(host);


        }

    }

}


Ich habe dies strikt nach anleitung gemacht, welche man unter folgendem Link nachlesen kann:

klick mich

Jedoch wird mir bei der übergabe des wpf controls and den elementhost folgender Fehler geworfen:

Erster Fehler:

1-Argument: kann nicht von "System.Windows.Controls.ListBox"

in "System.Windows.Forms.Control" konvertiert werden.

Zweiter Fehler:

Die beste Übereinstimmung für die überladene System.Windows.Forms.Control.ControlCollection.Add(System.Windows.Forms.Control)-Methode hat einige ungültige Argumente.

Dann habe ich gedacht ich hätte den Falschen elementhost typ gewählt, habe aber festgestellt das es keinen anderen gibt.

Ich hoffe es kann mir jemand weiterhelfe,

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

nur mal so aus Interesse...

Warum erstellst Du keine WPF-Anwendung?

Wenn Dir die Controls gefallen (ich sehe das auch so :)) kannst Du doch XAML schreiben oder die IDE dafür nutzen.

Gruß,

Thomas

Der Grund ist recht einfach, ich habe schön öffters reine WPF Anwendungen geschrieben und habe daher gemerkt das die Datenanbiendungsmöglichkeiten einfach nur grottig sind.

Da ich jedoch in den meisten meiner Anwendungen auf DBs zugreife eignet sich dies nicht wirklich.

Was mir persöndlich am meisten fehlt ist ein Datagridview.

Ich könnte mir natürlich ein solches Control kaufen (was mir teuer wäre) oder selbst mit Blend schreiben, wo mir jedoch der Aufwand zu groß wäre.

Also habe ich mich entschieden bei windows Forms zu bleiben und die jeweiligen Controls die ich benötige zu importieren.

Gruß,

Simon

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was spricht gegen das DataGrid Control (DataGrid Class (System.Windows.Controls))?

Das Framework 4.0, sowie das Visual Studio 2010, das ich nicht besitze. :rolleyes:

Kleines Zitat aus deinem Link:

This page is specific to

Microsoft Visual Studio 2010/.NET Framework 4.0

Desweiteren habe ich mir diesbezüglich schon Videos der Beta angesehn, welche darauf hinweisen das man das Datagridview bei größeren Datenmengen vergessen kann, da dieses dann dazu neigt enorm lange zeiten beim redraw zu benötigen.

Bearbeitet von Gateway_man
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie ich schon in der Änderung darauf hingewiesen habe, hat dieses bei größeren Datenmengen nicht so gute Laufzeitwerte wie beispielsweise das DGV einer Windows Form Anwendung, desweiteren sind die Datenanbindungsmöglichkeiten in WPF sehr begrenzt, so vermisste ich zu beispiel meine DB Provider etc.

Zurück zum Thema.

Ich habe bereits die geschafft controls zu implementieren, jedoch nur über den designer. Bei der Code deklaration stellt sich mir immernoch das problem, welches ich nicht verstehe. Grundsätzlich würde es im Designer genügen, jedoch wäre mir die initialsierung im Code wesentlich lieber.

Wäre sehr erfreut wenn jemand eine lösung parat hat ;-)

Lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...