101 votes

Quelles sont les méthodes disponibles pour mannequin de données de conception dans WPF?

Je suis en train de travailler sans expression blend et seulement à l'aide de l'éditeur XAML dans vs2010. La sagesse de ce côté, je suis de plus en plus de voir un besoin pour le moment de la conception de la liaison de données. Pour les cas simples, l' FallbackValue de la propriété fonctionne très bien (zones de texte et TextBlocks, etc). Mais surtout lorsqu'il s'agit ItemsControl et comme, on a vraiment besoin de l'exemple de données pour être visible dans le concepteur de sorte que vous pouvez régler et ajuster les contrôles et les modèles de données sans avoir à lancer l'exécutable.

Je sais qu' ObjectDataProvider permet pour la liaison à un type, et peut donc fournir des données de conception pour la visualisation, mais il y a quelques acrobaties pour permettre le réel, au moment de l'exécution des données pour lier sans gaspillage des ressources par le chargement chargement à la fois le moment de la conception, dummied de données et l'exécution des liaisons.

Vraiment ce que je suis désireux est la capacité d'avoir, disons, "Jean", "Paul", "George", et "Ringo" afficher dans le concepteur XAML comme à styliser les éléments en ma ItemsControl, mais réel, des données montrent que lorsque l'application s'exécute.

Je sais aussi que le Mélange permet un peu de fantaisie attributs qui définissent moment de la conception de la liaison de données qui sont pratiquement ignorées par WPF dans les conditions d'exécution.

Donc mes questions sont:

1. Comment pourrais-je tirer parti au moment de la conception des liaisons de collections et de la non-trivial de données dans visual studio concepteur XAML et le swap à l'exécution des liaisons en douceur?

2. Comment d'autres ont résolu ce problème au moment de la conception vs les données d'exécution problème? Dans mon cas, je ne suis pas très facilement utiliser les mêmes données pour les deux (que l'on pourrait être en mesure de, par exemple, une requête de base de données).

3. Leurs solutions de rechange à expression blend que je pourrais utiliser pour les données intégrée XAML design? (Je sais il y a des alternatives, mais j'ai particulièrement voulez quelque chose que je peux voir et utiliser tenu des données de l'échantillon, etc?)

121voto

Goran Points 3996

À l'aide de VS2010 vous pouvez utiliser les attributs de Conception (fonctionne pour les SL et WPF). D'habitude, j'ai simulé une source de données, de toute façon donc c'est juste une question de:

  • L'ajout de la déclaration d'espace de noms

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    
  • L'ajout de la simulation de contexte de données de la fenêtre/de contrôle des ressources

    <UserControl.Resources>
      <ViewModels:MockXViewModel x:Key="DesignViewModel"/>
    </UserControl.Resources>
    
  • Réglage au moment de la conception de contexte de données

    <Grid d:DataContext="{Binding Source={StaticResource DesignViewModel}}" ...
    

Fonctionne assez bien.

4voto

dthrasher Points 10641

Karl Shifflett décrit une approche qui devrait fonctionner aussi bien pour VS2008 et VS2010:

La visualisation de Données au Moment du Design dans Visual Studio 2008 Cidre de Designer dans les Projets WPF et Silverlight

Laurent Bugnion a une approche similaire qui se concentre sur l'Expression Blend. Il peut travailler pour VS2010, mais je n'ai pas confirmé encore.

La simulation de données en mode création dans Microsoft Expression Blend

4voto

jbe Points 4629

Peut-être que la nouvelle au moment de la conception des fonctionnalités de Visual Studio 2010 et Expression Blend 4 sont une option pour vous.

Comment cela fonctionne est indiqué dans le BookLibrary exemple d'application de la WPF Cadre applicatif (WAF). S'il vous plaît télécharger l' .NET4 version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X