2010-05-19 11 views
8

Ich frage mich, wie ich einen XmlDataProvider verwenden kann, um beliebige XML-Daten für die Entwurfszeit in Blend 4 zur Verfügung zu stellen. Ich habe ein paar Möglichkeiten ausprobiert, aber Blend hebt es nicht auf. Meine UI-Elemente sind leer.Kann XmlDataProvider mit d: DataContext verwendet werden?

Ich weiß, dass Blend Funktionalität zum Generieren und Verwalten von Beispieldaten hat, aber das ist eine Menge Aufwand für einige der einfachen Benutzersteuerelemente, die ich habe. Ich suche nach etwas, das inline in der Xaml-Datei funktioniert (d. H. Implizites Schema), ohne dass viele zusätzliche Dateien generiert werden. Einen XmlDataProvider in die Ressourcen zu setzen und dann einen d: DataContext zu machen, um darauf zu verweisen, schien ein guter Weg zu sein, aber ich kann es nicht funktionieren lassen.

Ich kann keine meiner viewmodel-Klassen dafür verwenden (wie mit einem d: DesignData oder mit ObjectDataProvider), weil sie Setter für alle Eigenschaften nicht offen legen. Diese Eigenschaften können nicht mit Entwurfszeitdaten festgelegt werden, wenn sie schreibgeschützt sind.

Wie kann ich ein Modell in reinem Xaml erstellen, an das ich zur Entwurfszeit binden kann?

+0

welcher Teil der Beispieldaten ist "viel Aufwand"? –

+0

Ich habe lange Zeit keine Beispieldaten verwendet, aber zuletzt erinnere ich mich daran, dass es spezielle Ordner mit Namen erstellt und Dateien hinzugefügt hat. – scobi

+0

ja, aber soweit ich verstehe, diese Dateien werden nur zur Entwurfszeit und nicht in der tatsächlichen Build verwendet –

Antwort

0

Wenn ich Sie richtig verstanden hat,

ich in der Regel auf diese Weise tun, was, noch kann ich nicht bekommen, wie komplex Ihr Modell ist, aber dies eine Art und Weise, die für Sie in Design-Zeit, um vielleicht arbeiten um eine bestimmte Datentabelle oder ähnliches zu testen.

<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> 

Haben Sie das gemeint? Wenn nicht, bitte mehr ausarbeiten.

Verwandte Themen