1

J'ai une application que j'ai presque fini qui utilise plusieurs modèles de données. Plus précisément, j'ai un ListView et un DataGrid.Puis-je prévisualiser mes DataTemplate (s) dans mes contrôles de collection dans le concepteur?

J'ai créé un formatage spécial pour ces articles et j'aimerais obtenir un aperçu de ces éléments de la liste, afin que je puisse modifier la mise en page visuelle, coloration, rembourrage, marges, etc.

Cela peut-il être fait dans le concepteur Visual Studio, ou suis-je obligé de concevoir ces modèles à la main dans Xaml, et prévisualiser en exécutant mon application?

+0

Utiliser un mélange. http://stackoverflow.com/questions/15922523/design-view-of-a-datatemplate-in-a-resourcedictionary-in-visual-studio –

Répondre

2

Vous pouvez utiliser un modèle de vue de conception.

Ajouter ces attributs à la usercontrol/fenêtre:

xmlns:designTime="clr-namespace:NamespaceToYourDesignTimeViewmodel" 
     mc:Ignorable="d" 
     d:DataContext="{d:DesignInstance Type=designTime:DesignTimeMyViewModel, IsDesignTimeCreatable=True}" 

En supposant que votre viewmodel temps de conception a la même structure que le viewmodel de temps d'exécution (vous pouvez choisir d'appliquer cela avec une interface); Ensuite, vous pouvez créer des données de temps de conception dans votre modèle de vue de conception et le voir dans le concepteur.

Par exemple, votre modèle de vue du temps de conception peut ressembler à:

public class DesignTimeMyViewModel : IMyViewModel 
{ 
    public string Name { get; set; } 

    public DesignTimeMyViewModel() 
    { 
     this.Name = "Design time data"; 
    } 
} 

L'interface de la cohérence de l'application entre la structure et l'exécution designtime; et les données de temps de conception peuvent simplement être codées en dur pour tout ce que vous devez voir dans le concepteur VS XAML.

Ceci est un exemple simple, mais le même principe peut être étendu à des collections d'objets complexes. Le concepteur liera toujours les données de temps de conception de la même manière qu'à l'exécution.