Hallo Abt,
alles klar.
Oh Mann, bin ich blind!
Hallo Th69,
okay, ich sehe das mit der Initialisierung der Spielpaarungen in der Startmethode.
Ich werde mir dann mal MVVM näher ansehen. Alle alten Hasen hier auf der Platform arbeiten offenbar damit.
Jo, den Button habe ich ab jetzt aber drauf!
Eine komplett andere Frage: wie finde ich schnell und auf möglichst direktem Wege eigentlich meine eigenen Posts wieder? In meine Account sind diese nicht zu finden.
Ich danke Dir auch sehr für Deine Unterstützung!
Kann ich eigentlich etwas für die Platform spenden?
Guten Morgen Caveman,
vielen Dank für Deine Hilfe. Es läuft jetzt, natürlich!
MVVM: sollte oder muss ich das MVVM-Toolkit in VS installieren oder kann ich bei der Erstellung neuer Projekte einfach nach der Logik vorgehen, wie Du es gemacht hast (Klasse MainWindowViewModell erstellen, alles raus aus der MainWindow code Datei, gesonderte Klasse für ein UserControl erstellen...).
Ich werde zunächst mal mit dem Artikel MVVM und DataBinding beschäftigen, oder was sollte ich als erstes tun?
Vielen Dank Th69! Habe alles gemacht, wie Du gesagt hast (hoffe ich). Bekomme aber eine Fehlermeldung bezüglich
new Spielpaarung(teams[0], teams[1]),
new Spielpaarung(teams[2], teams[3])
"Ein Feldinitialisierer kann nicht auf das nicht statische Feld bzw. die nicht statische Methode oder Eigenschaft "MainWindow.teams" verweisen". Habe die Liste auf private static gesetzt, bekomme dann aber "Index out of range", obwohl definitiv 4 Elemente in der Liste teams sind.
Würdest Du bitte noch einmal den code und XAML prüfen?
Vielen Dank!
Den Button zur Formatierung habe ich jetzt gesehen!
@Th69 und @Caveman
Ich danke Euch beiden vielmals! Ihr habt beide eine identische Lösung vorgeschlagen. Ich habe es getestet, leider wird jetzt gar nichts angezeigt in der ListView.
Den XAML code habe ich gemäß eurem Vorschlag geändert, eine neue zweite Klasse erstellt und den DataContext für die beiden StackPanel auf die neuen Objekte von den beiden Klassen gesetzt.
Im XAML gibt es den Hinweis, "Für die Bindung ...... wurde kein DataContext gefunden.
Habe es auch mit nur einem StackPanel in einem GridViewColumn versucht, brachte aber nichts.
Würdet Ihr freundlicherweise noch einmal prüfen, was falsch ist?
Ich habe diesmal wegen des Formatierungsproblems hier im Editor code und XAML als Datei angehängt.
@Th69: Bezüglich der Formatierung mit den Code-Blöcken: in meinem XAML und Code ist alles korrekt formatiert, aber beim Einfügen in diesen Editor ist die Formatierung nach dem Klicken des Button "Beitrag erstellen" flöten gegangen. MVVM-Pattern: Das werde ich in Zukunft nutzen. Es wird hier im Forum immer wieder erwähnt.
Hallo Leute,
es geht rein um eine spezielle Darstellung einer ListView in XAML. Wahrscheinlich hat jemand von Euch eine Idee. Im Forum habe ich unter dem Thema "Spielpaarungen" und "Paarungen" etwas gefunden, aber dort geht es nur um die Erstellung von Spielpaarungen, nicht um meine Fragestellung zur "Formatierung".
Ich habe eine Klasse Mannschaft erstellt. Öffentliche Eigenschaften: LandFlagge und LandName. Diese befüllt mit 4 Mannschaften. Im code listView.ItemsSource auf die Liste gesetzt.
Nun will ich die Spielpaarungen in einer ListView "listView" darstellen. Pro Zeile (also zur Zeit 2 Zeilen) im Format
LandFlagge - LandName (Team 1) - LandName - LandFlagge (Team2)
LandFlagge - LandName (Team 3) - LandName - LandFlagge (Team4)
Wie soll ich das in XAML programmieren? Ich kriege es einfach nicht hin. Ich schaffe es lediglich alle Einträge der Liste untereinander darzustellen oder aber nebeneinander, dann aber doppelt, also
Team1 - Team1
Team2 - Team2
(siehe unten)
Ich danke für eure Hilfe!
Klasse Mannschaft:
public partial class MainWindow : Window
{
public class Mannschaft
{
private string landFlagge, landName;
public string LandFlagge { get ⇒ landFlagge; set ⇒ landFlagge = value; }
public string LandName { get ⇒ landName; set ⇒ landName = value; }
}
Code:
.....
List<Mannschaft> teams = new List<Mannschaft>();
private void Start()
{
teams.Add(new Mannschaft()
{
LandName = "Deutschland",
LandFlagge = "Flaggen/FlagDeutschland.png"
});
teams.Add(new Mannschaft()
{
LandName = "Russland",
LandFlagge = "Flaggen/FlagRussland.png"
});
teams.Add(new Mannschaft()
{
LandName = "Polen",
LandFlagge = "Flaggen/FlagPolen.png"
});
teams.Add(new Mannschaft()
{
LandName = "Portugal",
LandFlagge = "Flaggen/FlagPortugal.png"
});
listView.ItemsSource = teams;
}
XAML:
<Grid>
<StackPanel>
<TextBlock Text="Spielpaarungen"/>
<ListView x:Name="listView" Height="auto" Width="auto">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding LandFlagge}" Height="16" Width="16"/>
<TextBlock Text="{Binding LandName}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding LandName}"/>
<Image Source="{Binding LandFlagge}" Height="16" Width="16"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Grid>