Wie kann ich DesignTime-Daten in WinRT XAML abrufen, sodass der Designer Beispieldaten anzeigt?Wie haben DesignTime Daten in WinRT XAML?
Antwort
Einfach genug.
erstellen Modell wie folgt aus:
public class Fruit
{
public string Name { get; set; }
}
Erstellen Sie eine Basis Ansichtsmodell wie folgt aus:
public class BaseViewModel
{
public ObservableCollection<Fruit> Fruits { get; set; }
}
Erstellen Sie eine echte Ansichtsmodell wie folgt aus:
public class RealViewModel : BaseViewModel
{
public RealViewModel()
{
if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
LoadData();
}
public void LoadData()
{
// TODO: load from service
}
}
erstellen fake-Daten ViewModel wie folgt:
public class FakeViewModel : BaseViewModel
{
public FakeViewModel()
{
this.Fruits = new ObservableCollection<Fruit>
{
new Fruit{ Name = "Blueberry"},
new Fruit{ Name = "Apple"},
new Fruit{ Name = "Banana"},
new Fruit{ Name = "Orange"},
new Fruit{ Name = "Strawberry"},
new Fruit{ Name = "Mango"},
new Fruit{ Name = "Kiwi"},
new Fruit{ Name = "Rasberry"},
new Fruit{ Name = "Blueberry"},
};
}
}
Tun Sie dies in Ihrem XAML:
<Page.DataContext>
<local:RealViewModel />
</Page.DataContext>
<d:Page.DataContext>
<local:FakeViewModel />
</d:Page.DataContext>
Viel Spaß!
PS: Sie können auch versuchen, d:DesignData zu verwenden. Dieser Ansatz funktioniert auch. Ich fühle, dass es nicht so geradlinig ist. Am Ende ist es Ihnen überlassen, wie es geht. Egal, verpassen Sie DeisgnTime-Daten nicht! Hier
ist das d: DesignInstance Beispiel:
Ich werde auch Jerrys Fruit-Klasse verwenden, aber ich werde nicht MVVM verwende hier, wie Sie nicht, dass müssen, damit es funktioniert.
Grundsätzlich müssen wir die Datenmodellklasse (z. B. ViewModel oder Model) erstellen, für die wir Entwurfsdaten haben möchten (z. B. in diesem Fall erstelle ich eine untergeordnete Klasse, muss dies aber nicht).
public class Fruit
{
public string Name { get; set; }
}
public class SampleFruit : Fruit
{
public SampleFruit()
{
Name = "Orange (Sample)";
}
}
Dann können wir in unserem XAML d: DataContext verwenden, um die untergeordnete Klasse zu binden.
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
DataContext="{Binding}"
d:DataContext="{Binding Source={d:DesignInstance Type=local:SampleFruit, IsDesignTimeCreatable=True}}">
<TextBlock Text="{Binding Name}"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="42"/>
</Grid>
Bitte beachten Sie folgende Zeile:
d:DataContext="{Binding Source={d:DesignInstance Type=local:SampleFruit, IsDesignTimeCreatable=True}}"
Jetzt sollten Sie Ihr Design Zeitdaten sowohl Visual Studio Designer und Ausblenden sehen.
P. S. In Blend 2013 gibt es eine Datenregisterkarte, auf der Sie auch Beispieldaten erstellen können.
Brilliant. Einfach genial. Vielen Dank. –
- 1. WinRT XAML benutzerdefinierte Übergang
- 2. XAML - Vorschau auf DesignTime mit Beispiel Elemtns?
- 3. WinRT XAML Toolkit Visualisierungsfehler
- 4. WinRT XAML Steuerung in FlipView finden Artikelvorlage
- 5. WinRT XAML Toolkit TreeView Speicherstatus
- 6. Wo ist die Datumsauswahl in WinRT XAML?
- 7. Wo ist der RadialGradientBrush in WinRT XAML?
- 8. Winrt-Abhängigkeitseigenschaft Visual Studio XAML-Fehler.
- 9. Wie Klon UIElement in WinRT XAML C#? erste
- 10. Wie Sie ein Array in WinRT XAML hinzufügen
- 11. XAML - Wie globale InputBindings haben?
- 12. Auswahl zwischen XAML ListView und GridView in WinRT
- 13. Sticky-Header in ListView und GridView WinRT xaml
- 14. Wo Zugriff auf Datacontext in WinRT XAML Usercontrol
- 15. Asynchrone WinRT-Daten laden in Konstruktor
- 16. WinRT XAML AppBarButton UI-Stil Problem auf App Kultur geändert
- 17. bietet Designtime ViewModel-Daten für Blend und VS
- 18. WinRT (Win 8) App speichern XAML-Bindungen RelativeSourceMode FindAncestor fehlt?
- 19. Xamarin DesignTime Benutzerdefinierte Steuerelemente Rendern in XCode, bearbeiten Steuerelementeigenschaften in DesignTime
- 20. Component Initialisierung - Runtime vs. Designtime
- 21. SVG in XAML konvertieren
- 22. WinRT & Light Theme
- 23. DesignTime-Daten werden nicht in Blend angezeigt, wenn sie an CollectionViewSource gebunden sind
- 24. Wie Dateigröße in WinRT erhalten?
- 25. In WinRT XAML, wie Bilder im Außenbereich/separate Montage/Projekt referenzieren?
- 26. Wie man eine Gridview um ein anderes Element in xaml winrt uwp wickeln?
- 27. Vertikales Scrollen innerhalb der GridView-Gruppe von Elementen in WinRT XAML
- 28. Wie übermittelst du Daten in einen IValueConverter in XAML?
- 29. Dateifreigabe-Modus in WinRT
- 30. WinRT-Lizenzierung
Würde gerne ein Beispiel für die Verwendung von d: DesignData :) sehen – swinefeaster
Eigentlich finden Sie es nie gefunden, siehe hierzu: http://StackOverflow.com/Questions/8303803/setting-design-time-Datacontext-on-A-window -gibt einen Compiler-Fehler. Dies ist besser, weil Sie es nur durch XAML tun können und nicht viel im Code haben, was mehr Sinn macht (für mich sowieso). – swinefeaster
Sprechen Sie mit mir, nachdem Sie den anderen Ansatz in Windows8 versucht haben. –