2016-11-20 2 views
0

Ich möchte eine einzige MainWindow mit zwei Spalten haben, eine schmale auf der linken Seite und eine breite auf der rechten Seite. In der linken sollte eine Menüleiste und in der rechten ein Raster von Fields sein (was eine benutzerdefinierte ViewModelBase ist). Aber gerade jetzt, wenn ich das Programm starte, gibt es mir zwei Fenster, eines mit dem Gitter und eines mit der Menüleiste auf der linken Seite. Was mache ich falsch? Wo könnte der Fehler sein?C# WPF - MainWindow Inhalt wird in zwei separaten Fenstern statt einer

Tha XAML sieht wie folgt aus:

<Window x:Class="SavageMaci.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Test" Height="500" Width="700"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 

     <Menu Grid.Row="1" Grid.Column="1" Margin="38,0,187,430" Background="White"> 
      <Menu.RenderTransform> 
       <TransformGroup> 
        <ScaleTransform/> 
        <SkewTransform/> 
        <RotateTransform Angle="90"/> 
        <TranslateTransform/> 
       </TransformGroup> 
      </Menu.RenderTransform > 
      <MenuItem Header="Level 1" FontFamily="Roboto" Height="32" Width="65"/> 
      <MenuItem Header="Level 2" FontFamily="Roboto" Height="32" Width="65"/> 
      <MenuItem Header="Level 3" FontFamily="Roboto" Height="32" Width="65"/> 
     </Menu> 
     <ItemsControl Grid.Row="1" Grid.Column="2" ItemsSource="{Binding Fields}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <UniformGrid Rows="{Binding Size}" Columns="{Binding Size}"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 
    </Grid> 
</Window> 

Die xaml.cs ist auch Grund:

namespace SavageMaci 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

Es gibt nur einen Hinweis auf MainWindow(), in App.xaml.cs, wo ich es instanziiert. Bitte lassen Sie mich wissen, wo sonst der Fehler sein könnte, ich werde die Frage auch mit diesem Code aktualisieren. Danke für die Hilfe!

+0

Nur um es auszuprobieren, erstellen Sie ein separates Projekt und erstellen Sie die Quelldateien neu, indem Sie den Inhalt der XAML- und CS-Dateien kopieren (kopieren Sie die Dateien nicht selbst, insbesondere keine * .G.CS-Dateien). Sag mir, ob das Problem weiterhin besteht. –

+0

Scheint so, als wäre ich komplett verloren. Ich kann nicht wirklich tun, was Sie vorschlagen, da ich wie 8 Klassen habe, die ich für das neue Dummy-Projekt kopieren/ändern müsste, also habe ich versucht, es zu vereinfachen und ein "Feld" von Knöpfen zu verwenden anstelle der benutzerdefinierten Klasse. Was ich gerade mache, kannst du hier finden: https://codeshare.io/5DY1Wa Allerdings kann ich diesmal nicht einmal das Raster der Buttons anzeigen lassen, obwohl ich das 'Field' von verbinde 'Button's zum' Mainwindow's 'DataContext' ... –

+0

Ich war dort, Kumpel, 8 Klassen ist nichts .. Ich empfehle Ihnen dringend, das zu tun, was ich gesagt habe, damit wir das Problem weiter diagnostizieren können. Ich werde mir den Code in der Zwischenzeit ansehen. –

Antwort

0

Die Lösung für Ihr Problem ist einfach. In Ihrer App-Klasse erstellen Sie eine MainWindow-Instanz.

Dies ist unnötig, da App eine eigene Instanz erstellt, unabhängig davon, ob Sie sie erstellen oder nicht.

Werfen Sie einen Blick auf die Datei App.xaml und Sie werden es selbst sehen.

+1

Oh danke! Ich brauche tatsächlich den einen, der in der App-Klasse erstellt wurde, aber das Entfernen aus der App.xaml hat geholfen! –

+0

Gern geschehen :) –

Verwandte Themen