Sto provando a progettare il DataTemplate
per il mio ItemsControl
e ho bisogno di alcuni dati falsi per popolare il modello. Ho letto utilizzando d:DataContext
è sufficiente in modo che non debba creare una classe di simulazione. Come posso fare questo?Design time ItemsSource on ItemsControl
5
A
risposta
7
L'istanza da utilizzare con d: DataContext deve essere dichiarata in XAML, ad esempio con StaticResource
.
Ecco come si potesse fare:
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns:local="clr-namespace:WpfApplication1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<local:MyViewModel x:Key="mockViewModel"/>
</UserControl.Resources>
<Grid>
<ItemsControl d:DataContext="{StaticResource mockViewModel}"
ItemsSource="{Binding Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>
La classe che ho usato come contesto dati è definito come segue:
namespace WpfApplication1
{
public class Item
{
public Item(string name)
{
Name = name;
}
public string Name { get; private set; }
}
public class MyViewModel
{
public List<Item> Items
{
get
{
return new List<Item>() { new Item("Thing 1"), new Item("Thing 2") };
}
}
}
}
Naturalmente, è anche possibile impostare il contesto dati sulla UserControl
o sulla tua finestra.
Ecco il risultato:
Problemi correlati
- 1. controllo personalizzato design-time
- 2. Design Time Reflection
- 3. C# Design Time Path
- 4. Animate Insertions to ItemsControl
- 5. Virtualizzare un ItemsControl?
- 6. WPF Design-Time vs Differenze di stile run-time con trigger
- 7. Proprietà di Visual Studio Design Time - Elenco elenco a discesa
- 8. Fuss su pacchetti Runtime e Design Time in Delphi
- 9. CollectionViewSource, Design Time Data, Miscela e Windows 8
- 10. ItemsControl con intestazione statica
- 11. Ottenere l'elemento selezionato in ItemsControl
- 12. Come ottenere l''articolo' corrente in un binding di ItemsSource
- 13. TwoWay Binding With ItemsControl
- 14. Convalida articoli in ItemsControl
- 15. ItemsControl mancante barra di scorrimento verticale
- 16. Load Time on asp.net page non può essere contabilizzato per
- 17. Che cosa significa "ItemsSource =" {Binding} ""?
- 18. ItemTemplate: ListBox vs ItemsControl
- 19. ItemsControl con orientamento orizzontale
- 20. Come evidenziare la voce selezionata in ItemsControl?
- 21. Estendere i controlli per riempire ItemsControl
- 22. WPF MVVM forme mobili con itemscontrol
- 23. WPP WrapPanel/ItemsControl non scorrebile
- 24. WrapPanel come ItemPanel per ItemsControl
- 25. Impostazione delle proprietà di tela in un ItemsControl DataTemplate
- 26. WPF ListBox ItemsSource StaticResource/domanda Binding
- 27. Aggiungere oggetti aggiuntivi quando si utilizza ItemsSource
- 28. Binding TabControl ItemsSource to Collection of ViewModels
- 29. Controllo utente con proprietà di dipendenza ItemsSource personalizzata
- 30. WPF: Impossibile eliminare i dati trascinato su un ItemsControl
ho letto che caricarlo come una risorsa renderà l'applicazione del carico anche su runtime. Sto usando 'd: DataContext =" {d: DesignInstance Type = prende in giro: MyViewModelMock, IsDesignTimeCreatable = True} 'ma non funziona –
@ChristopherFrancisco Utilizzando d: DesignInstance lavora troppo tenta di riavviare VS e ricostruire la vostra soluzione. Il Designer a volte è un po 'pigro con l'aggiornamento ... – helb
ha funzionato, grazie –