Come posso ottenere dati DesignTime in WinRT XAML in modo che il progettista mostri dati di esempio?Come avere dati DesignTime in WinRT XAML?
risposta
Abbastanza semplice.
Creare un modello come questo:
public class Fruit
{
public string Name { get; set; }
}
Creare un ViewModel di base in questo modo:
public class BaseViewModel
{
public ObservableCollection<Fruit> Fruits { get; set; }
}
creare un vero e ViewModel come questo:
public class RealViewModel : BaseViewModel
{
public RealViewModel()
{
if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
LoadData();
}
public void LoadData()
{
// TODO: load from service
}
}
Creare un falso-dati VisualizzaModel in questo modo:
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"},
};
}
}
Fate questo in vostro XAML:
<Page.DataContext>
<local:RealViewModel />
</Page.DataContext>
<d:Page.DataContext>
<local:FakeViewModel />
</d:Page.DataContext>
Buon divertimento!
PS: è anche possibile provare a utilizzare d:DesignData. Questo approccio funziona anche. Sento che non è così semplice. Alla fine, sta a voi decidere come farlo. In ogni caso, non perdere i dati di DeisgnTime!
Ecco il d: campione DesignInstance:
ho anche utilizzare la classe di frutta di Jerry, ma non userò MVVM qui come non è necessario che per fare funziona.
Fondamentalmente, dobbiamo creare la classe del modello di dati (ad esempio, ViewModel o Model) che vogliamo avere dati di progettazione (ad esempio, in questo caso, creo una classe figlio, ma non è necessario).
public class Fruit
{
public string Name { get; set; }
}
public class SampleFruit : Fruit
{
public SampleFruit()
{
Name = "Orange (Sample)";
}
}
Quindi nel nostro XAML, possiamo usare d: DataContext per associare la classe figlio.
<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>
Si prega di notare questa linea:
d:DataContext="{Binding Source={d:DesignInstance Type=local:SampleFruit, IsDesignTimeCreatable=True}}"
Ora si dovrebbe vedere i dati in tempo di progettazione sia su progettazione di Visual Studio e Blend.
P.S. In Blend 2013 è disponibile una scheda dati che consente di creare anche dati di esempio.
Fantastico. Semplicemente geniale. Grazie. –
- 1. WinRT XAML Transizione personalizzata
- 2. Come aggiungere una matrice in WinRT XAML
- 3. Come clonare UIElement in WinRT XAML C#?
- 4. Dove si trova RadialGradientBrush in WinRT XAML?
- 5. XAML Primitives in Metro WinRT/Win8
- 6. Dove accedere DataContext in XAML WinRT UserControl
- 7. WinRT XAML Toolkit Errore di visualizzazione
- 8. Scelta tra ListView e GridView di XAML in WinRT
- 9. Scala WinRT (C#/XAML) senza sfocatura
- 10. Rileva DesignTime in WP7 codice
- 11. Intestazione appiccicosa in ListView e GridView WinRT xaml
- 12. Esiste un controllo WrapPanel (non WrapGrid) in WinRT-XAML?
- 13. Dove si trova il selettore di date in WinRT XAML?
- 14. WinRT XAML Trova il controllo all'interno del modello FlipView Item
- 15. Come associare dati ListView ItemTemplates nidificati in Metro/WinRT?
- 16. Xamarin DesignTime Custom Controls Rendering in XCode, modifica le proprietà del controllo in DesignTime
- 17. I dati DesignTime non vengono visualizzati in Blend quando sono associati a CollectionViewSource
- 18. WinRT (Win 8) App Store XAML Bindings RelativeSourceMode FindAncestor mancante?
- 19. Utilizzo di FadeInThemeAnimation come transizione in WinRT
- 20. Codifica stream WinRT
- 21. In WinRT C# come faccio a salvare un albero XAML fuori schermo usando RenderTargetBitmap?
- 22. In WinRT XAML, come fare riferimento alle immagini nell'assemblaggio/progetto esterno/separato?
- 23. Dati di progettazione per datatemplate in xaml
- 24. Associazione all'intero elemento dati in XAML
- 25. Come si passano i dati in un IValueConverter in XAML?
- 26. WinRT & Light Tema
- 27. Quali sono i pro e i contro della scrittura di applicazioni C#/XAML rispetto a C++/XAML WinRT in Windows8?
- 28. Componente di inizializzazione - Runtime vs. designtime
- 29. Come definire i modelli di dati impliciti in Metro XAML?
- 30. XAML clr-namespace - utilizzo incompatibilità?
Mi piacerebbe vedere un esempio di utilizzo di d: DesignData :) – swinefeaster
In realtà non è stato trovato, consultare questo: http://stackoverflow.com/questions/8303803/setting-design-time-datacontext-on-a-window -is-dare-a-compilatore errori. Questo è meglio perché puoi farlo solo tramite xaml e non devi utilizzarlo molto nel codice, il che ha più senso (almeno per me). – swinefeaster
Parla con me dopo aver provato l'altro approccio in Windows8. –