2010-05-19 6 views
8

Me pregunto cómo puedo usar un XmlDataProvider para proporcionar datos XML arbitrarios para el uso del tiempo de diseño en Blend 4. He intentado algunas formas de especificarlo, pero Blend no lo recoge. Mis elementos de IU terminan en blanco.Posible usar XmlDataProvider con d: DataContext?

Me doy cuenta Blend tiene la funcionalidad para generar y gestionar datos de muestra, pero eso es una gran sobrecarga para algunos de los controles de usuario simples que tengo. Estoy buscando algo que funcione en línea en el archivo Xaml (es decir, esquema implícito) sin que se generen muchos archivos adicionales. Poner un XmlDataProvider en los recursos y luego hacer un d: DataContext para referenciarlo me pareció una buena forma de hacerlo pero no puedo hacerlo funcionar.

No puedo utilizar ninguna de mis clases de viewmodel para esto (como con un d: DesignData o utilizando ObjectDataProvider) porque no exponen setters para todas las propiedades. No se pueden establecer esas propiedades con datos de tiempo de diseño si son de solo lectura.

¿Cómo puedo construir un modelo en Xaml puro al que pueda enlazar en el momento del diseño?

+0

¿Qué parte (s) de los datos de muestra son "demasiados gastos generales"? –

+0

No he utilizado datos de muestra en mucho tiempo, pero lo último que recuerdo es que termina creando carpetas con nombres especiales y agregando archivos. – scobi

+0

sí, pero por lo que entiendo, esos archivos solo se utilizan en el momento del diseño y NO en la compilación real –

Respuesta

0

Si he entendido bien,

cosa que suelo hacer de esta manera, sin embargo, no puedo conseguir la complejidad de su modelo es, pero esto de una manera que podría estar trabajando para usted en tiempo de diseño con el fin para probar una plantilla de datos específica o tal.

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

¿Eso es lo que quieres decir? Si no, por favor elabora más.

Cuestiones relacionadas