Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Window mit CodeBehind erstellen und Stackpanel oder Grid für Children einfügen
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Window mit CodeBehind erstellen und Stackpanel oder Grid für Children einfügen

beantworten | zitieren | melden

Hallo, ich möchte dynamisch aus dem Code heraus ein Window erstellen, und dem dann DataGrids oder ähnliches zufügen. Wie mache ich das, da ich einer Window-Instanz kein Control zuweisen kann, da noch kein Grid oder Stackpanel im Window definiert ist. Wie mache ich da?
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Hi oehrle,

lies dich mal ins Thema DataBinding ein, damit solltest du weiterkommen.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Databinding

beantworten | zitieren | melden

Bist dir sicher? Was soll denn das miteinander zu tun haben, bzw. mit dem DataBindig?
Hatte das schonmal irgendwo gemacht, aber nicht notiert.

Ich will:
- per Code ein Window erstellen
- ich erstelle per Code ein DataGrid und übergebe Daten die angezeigt werden sollen
- ich will das DataGrid dem Window übergeben (per Code) *.Children.Add()

Leider hat das Window ja noch kein StackPanel oder Grid,wo ich das DataGrid rein schmeißen kann .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Naja, bei WPF ist es einfacher, die Controls automatisch erstellen zu lassen, indem man MVVM verwendet und die Controls einfach an seine Daten bindet. Wenn du trotzdem Controls im Code erstellen willst, hilft dir das hier vielleicht weiter: Adding WPF Controls Progrrammatically.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Link hatte ich auch schon...

beantworten | zitieren | melden

Hi, den Link hatte ich auch schon. Nun leider ist da ja gerade folgendes:

<Window x:Class=“WPFSample001.AddControls“

    xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation“

    xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml“

    Title=“AddControls“ Height=“114“ Width=“212“

    >

  <StackPanel Name=“splMain“>

    <Button Name=“btnAddMore“ Click=“btnAddMore_Click“>Add Another</Button>

  </StackPanel>

</Window>

Das wäre bei mir ja nicht der Fall, das sieht bei mir (wenn ich das mal so in XAML darstelle) so aus:

<Window x:Class=“WPFSample001.AddControls“

    xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation“

    xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml“

    Title=“AddControls“ Height=“114“ Width=“212“

    >
!--< Kein Stackpanel, kein Grid...   Wie füge ich solch ein Element im Code Behinde ein ?? />--! 

</Window>


Wir mein Problem jetzt klarer?

Im Code behind (Beispiel):

Window wnd = new Window();
DatGrid dg = new DataGrid();
dg.ItemsSource = tbl.AsDataView();

wnd.Children.Add(dg): // das geht ja nicht, weil im wnd kein Panel ist.


Versteht man mein Problem nun besser? Die ganzen Beispiele sind immer sehr XAML-lastig.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von oehrle am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Window ist ein ContentControl und kann daher nur ein Child haben. Deshalb gibt es kein Property Children, sondern du mußt das Property Content verwenden, um dein Panel hinzuzufügen.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

Würde es zur Not nicht auch das hinzufügen eines Stackpanels oder ähnlichem tun?^^

Also Quasi:


Window wnd = new Window();
StackPanel pnl = new StackPanel();
wnd.Children.Add(pnl);
DatGrid dg = new DataGrid();
dg.ItemsSource = tbl.AsDataView();

pnl.Children.Add(dg):
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

gelöst

beantworten | zitieren | melden

Hallo, hatte doch gewußt ich hatte irgendwo etwas gesehen. Hat geklappt. Danke euch für die Hilfe, und hier für weitere die auf der Suche sind, ein Link:
http://msdn.microsoft.com/de-de/library/system.windows.controls.grid.aspx
private Nachricht | Beiträge des Benutzers