Weiß jemand / haben ein Beispiel, wie man WPF DataGrid-Layout ändern, um so etwas wie Card-View oder etwas anderes, nicht nur Stapel von Zeilen sein?
Sie haben die Vorlage für die ListBox geändert, aber die Frage bezog sich auf das DataGrid.
Weiß jemand / haben ein Beispiel, wie man WPF DataGrid-Layout ändern, um so etwas wie Card-View oder etwas anderes, nicht nur Stapel von Zeilen sein?
Das Ergebnis sieht wie folgt aus. Alt-Text http://iwebthereforeiam.com/files/ScreenShot.gif
Hier ist ein Code, der die Idee veranschaulichen soll.
XAML:
<Window x:Class="StackOverflow_545979.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StackOverflow_545979"
xmlns:debug="clr-namespace:System.Diagnostics;assembly=System"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<local:GreekGods x:Key="GreekGods"/>
<DataTemplate x:Key="itemTemplate">
<Border BorderBrush="RoyalBlue" BorderThickness="2" Margin="2" Padding="5">
<WrapPanel Orientation="Vertical">
<TextBlock Width="200" Text="{Binding Path=Name}"/>
<TextBlock Width="200" Text="{Binding Path=Description}"/>
<TextBlock Width="200" Text="{Binding Path=RomanName}"/>
</WrapPanel>
</Border>
</DataTemplate>
</Window.Resources>
<ListBox ItemTemplate="{StaticResource itemTemplate}"
ItemsSource="{StaticResource GreekGods}" />
</Window>
C#-Code:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace StackOverflow_545979
{
public class GreekGod
{
public string Name { get; set; }
public string Description { get; set; }
public string RomanName { get; set; }
public GreekGod() { }
public GreekGod(string name, string description, string romanName)
{
this.Name = name;
this.Description = description;
this.RomanName = romanName;
}
}
public class GreekGods : ObservableCollection<GreekGod>
{
public GreekGods()
{
this.Add(new GreekGod("Aphrodite", "Goddess of love, beauty and fertility", "Venus"));
this.Add(new GreekGod("Apollo", "God of prophesy, music and healing", "Apollo"));
this.Add(new GreekGod("Ares", "God of war", "Mars"));
this.Add(new GreekGod("Artemis", "Virgin goddess of the hunt", "Diana"));
this.Add(new GreekGod("Athena", "Goddess of crafts and the domestic arts", "Athena"));
this.Add(new GreekGod("Demeter", "Goddess of agriculture", "Ceres"));
this.Add(new GreekGod("Dionysus", "God of wine", "Bacchus"));
this.Add(new GreekGod("Hephaestus", "God of fire and crafts", "Vulcan"));
this.Add(new GreekGod("Hera", "Goddess of marriage", "Juno"));
this.Add(new GreekGod("Hermes", "Messenger of the Gods", "Mercury"));
this.Add(new GreekGod("Poseidon", "God of the sea, earthquakes and horses", "Neptune"));
this.Add(new GreekGod("Zeus", "Supreme God of the Olympians", "Jupiter"));
}
}
}
Die Klassen GreekGod und GreekGods wurden von Beispiele von Bea Stollnitz .
Sie haben die Vorlage für die ListBox geändert, aber die Frage bezog sich auf das DataGrid.
Ein Teil davon ist eine Empfehlung, dass Sie ListView anstelle von DataGrid verwenden. Und die beiden anderen Antwortenden haben ausdrücklich empfohlen, kein DataGrid, sondern ListView zu verwenden. Manchmal fragt man: "Wie kann ich X für Y verwenden?", und man bekommt zu hören: "Verwenden Sie nicht X für Y, sondern Z." Oft ist das der richtige Weg. Nach 30 Monaten mit dieser offenen Frage, was denken Sie?
Ich denke, wenn die Frage so formuliert ist: "Wie kann X gestylt werden?", dann sollte die Antwort lauten: "X kann auf diese und jene Weise gestylt werden (oder es kann nicht gestylt werden)". Wenn die Frage formuliert ist "Wie kann ich X machen?", dann kann man antworten "X kann mit Y oder Z gemacht werden".
Versuchen Sie anstelle eines Datengitters eine Kombination aus Listview oder Listbox (je nachdem, welche Funktionalität Sie wünschen - beide leiten sich von ItemsSource ab) und Datenvorlagen zu verwenden. Beide sind Standard WPF, nicht Teil des Toolkits.
http://blah.winsmarts.com/2007-3-WPF__The_DataTemplate,_choosing_how_your_data_will_look_like.aspx
Ich weiß nicht, wie man es mit WPF Toolkit's DataGrid zu tun, und ich bezweifle, es ist, was Sie tatsächlich brauchen. Sie können es mit einer ListView oder ListBox tun. Setzen Sie ListView.View auf ein WrapPanel mit IsItemsSource="True". Verwenden Sie dann ein DataTemplate, um die Karten zu erstellen. Es gibt ein ziemlich gutes Beispiel, das Ihnen den größten Teil des Weges dorthin zeigen wird aquí .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Können Sie uns ein Beispiel für die Kartenansicht nennen?
0 Stimmen
Ja du kannst wenn du noch Interesse hast werde ich eine Antwort posten.