2010-05-19 5 views
8

Je me demande comment je peux utiliser un XmlDataProvider pour fournir des données XML arbitraires pour l'utilisation de temps de conception dans le mélange 4. J'ai essayé quelques manières de le spécifier mais Blend ne le prend pas. Mes éléments d'interface utilisateur finissent vides. Je réalise que Blend a des fonctionnalités pour générer et gérer des exemples de données, mais c'est beaucoup de frais généraux pour certaines des commandes utilisateur simples que j'ai. Je cherche quelque chose qui fonctionne en ligne dans le fichier Xaml (c'est-à-dire le schéma implicite) sans que beaucoup de fichiers supplémentaires ne soient générés. Mettre un XmlDataProvider dans les ressources, puis faire un d: DataContext pour faire référence à cela, semblait être une bonne façon de procéder, mais je ne peux pas le faire fonctionner.Possibilité d'utiliser XmlDataProvider avec d: DataContext?

Je ne peux utiliser aucune de mes classes viewmodel pour cela (comme avec d: DesignData ou using ObjectDataProvider) car elles n'exposent pas les setters pour toutes les propriétés. Impossible de définir ces propriétés avec des données au moment du design si elles sont en lecture seule.

Comment puis-je créer un modèle en Xaml pur auquel je peux me lier au moment de la conception?

+0

Quelle (s) partie (s) de l'échantillon de données représente "beaucoup de frais généraux"? –

+0

Je n'ai pas utilisé de données d'exemple depuis longtemps, mais je me souviens que cela a fini par créer des dossiers nommés spéciaux et ajouter des fichiers. – scobi

+0

oui, mais pour autant que je comprenne, ces fichiers ne sont utilisés qu'au moment du design et pas dans la version actuelle –

Répondre

0

Si je vous ai bien compris,

que je fais habituellement chose de cette façon, mais, je ne peux pas la complexité de votre modèle est, mais d'une manière qui pourrait travailler pour vous dans le temps de conception pour pour tester un datatemplate spécifique ou tel.

<Window.Resources> 
     <XmlDataProvider x:Key="People" XPath="/IDs" > 
      <x:XData> 
       <IDs> 
        <ID name="A2231" /> 
        <ID name="A3dsa" /> 
        <ID name="Ad21d" /> 
        <ID name="Ad231" /> 
       </IDs> 
      </x:XData> 

     </XmlDataProvider> 
</Window.Resources> 



    <StackPanel Grid.Row="0" Grid.Column="1" DataContext="{StaticResource People}"> 
      <Label Width="200" Height="200" Content="{Binding XPath=ID/@name}"/> 
    </StackPanel> 

Est-ce ce que vous vouliez dire? Si non, s'il vous plaît élaborer plus.

Questions connexes