none
Como accedo a los datos de un Sampledata RRS feed

  • Pregunta

  • Hola de nuevo.

    Tengo creado con el Blend un Sampledata:

    <SampleData:articulosDataSource xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.articulosDataSource" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
      <SampleData:articulosDataSource.Collection>
        <SampleData:Item Property1="101 - Aplicación de las normas." />
        <SampleData:Item Property1="102 - Dudas e interpretación y falta de normas." />
        <SampleData:Item Property1="103 - Obligaciones de los mandos." />
        <SampleData:Item Property1="104 - Obligaciones de los agentes." />
        <SampleData:Item Property1="105 - Prescripciones generales de servicio." />
        <SampleData:Item Property1="106 - Transmisión del servicio." />
        <SampleData:Item Property1="107 - Reservado." />
        <SampleData:Item Property1="108 - Reservado." />
        <SampleData:Item Property1="109 - Personal que interviene en la circulación." />
        <SampleData:Item Property1="110 - Circulación." />
        <SampleData:Item Property1="111 - Trenes" />
        <SampleData:Item Property1="112 - Reservado." />
        <SampleData:Item Property1="113 - Reservado." />
        <SampleData:Item Property1="114 - Normas de circulación." />
        <SampleData:Item Property1="115 - Reglamento general de circulación." />
        <SampleData:Item Property1="116 - Manual de circulación." />
        <SampleData:Item Property1="117 - Consigana A." />
        <SampleData:Item Property1="118 - Consigana B." />
        <SampleData:Item Property1="119 - Consigana C." />
        <SampleData:Item Property1="120 - Consigana de pruebas." />
        <SampleData:Item Property1="121 - Horario de los trenes." />
        <SampleData:Item Property1="122 - Ordenes A." />
        <SampleData:Item Property1="123 - Ordenes B." />
        <SampleData:Item Property1="124 - Noticias." />
        <SampleData:Item Property1="125 - Avisos." />
        <SampleData:Item Property1="126 - Redaccion de los documentos." />
        <SampleData:Item Property1="127 - Reservado." />
        <SampleData:Item Property1="128 - Distribución de documentos." />
        <SampleData:Item Property1="129 - Documentación de servicio." />
        <SampleData:Item Property1="130 - Utiles de servicio." />
        <SampleData:Item Property1="131 - Falta de documentos o útiles." />
        <SampleData:Item Property1="132 - Reservado." />
        <SampleData:Item Property1="133 - Reservado." />
        <SampleData:Item Property1="134 - Clasificación de las comunicaciones." />
        <SampleData:Item Property1="135 - Trasnmisión de los tolefonemas." />
        <SampleData:Item Property1="136 - Registro de los telefonemas." />
        <SampleData:Item Property1="137 - Reservado." />
        <SampleData:Item Property1="138 - Reservado." />
        <SampleData:Item Property1="139 - Señales." />
        <SampleData:Item Property1="140 - Instalaciones de seguridad." />
        <SampleData:Item Property1="141 - Condiciones de marcha especiales." />
        <SampleData:Item Property1="142 - Tren." />
        <SampleData:Item Property1="143 - Paradas de los trenes." />
        <SampleData:Item Property1="144 - Detención de los trenes." />
        <SampleData:Item Property1="145 - Orden de marcha." />
        <SampleData:Item Property1="146 - Velocidades." />
        <SampleData:Item Property1="147 - Circulación de los trenes." />
        <SampleData:Item Property1="148 - Tipos de tren." />
        <SampleData:Item Property1="149 - Sentido de la circulación." />
        <SampleData:Item Property1="150 - Bloque de los trenes." />
        <SampleData:Item Property1="151 - Como se asegura el bloqueo." />
        <SampleData:Item Property1="152 - Conducción automática de trenes." />
        <SampleData:Item Property1="153 - Estaciones de servicio intermitente." />
        <SampleData:Item Property1="154 - Regímenes para trabajos en la via." />
        <SampleData:Item Property1="155 - Dispositivos de enganche de los vehiculos." />
        <SampleData:Item Property1="156 - Frenado." />
        <SampleData:Item Property1="157 - Maniobras." />
        <SampleData:Item Property1="158 - Mercancias peligrosas." />
      </SampleData:articulosDataSource.Collection>
    </SampleData:articulosDataSource>

    Necesito acceder a estos datos para hacer unas comprobaciones, no se si estos datos se pueden pasar a un array para luego consultarlos o puedo consultarlos directamente.

    Un Saludo.

    jueves, 12 de abril de 2012 17:31

Todas las respuestas

  • Hola,

    Si el archivo se lllama SampleData.xml y está como "Resource" (mira las propiedades del archivo la porpiedad "Build Action") entonces:

    StreamResourceInfo miXml =
    Application.GetResourceStream(new Uri(“/tuNombreProyecto;component/SampleData.xml”, UriKind.Relative));

    Y luego lo cargas con XElement.Load() o Xdocument.parse() por ejemplo,

    saludos


    José Miguel Torres

    viernes, 13 de abril de 2012 14:56
  • Hola Jose , gracias por contestar que estoy loco con este problema.

    El sampledata lo hice atraves del Blend y me ha generado 3 archivos que estan como recurso

    articulosDataSource.xsd que es un xml (el que he posteado arriba) articulosDataSource.xaml y articulosDataSource.xaml.cs (que es donde esta definida la class Item , ItemCollection, etc) Posteo los 3 archivos mas abajo.

    Este sampledata lo utilizo en otra pag xaml para enlazarlo con un LixtBox desde el blend y funciona perfectamente veo que lo enlaza atraves de Binding.

    El caso es que ahora necesito acceder a ese sampledata desde otro sitio ya que esta definido para toda la aplicacion  y habia pensado en una lista de elementos items

    List<Item> ListaArticulos = new List<Item>();

    Pero veo que la lista (ListaArticulos) esta vacia asi que no apunta al sampledata MessageBox.Show(Convert.ToString(ListaArticulos.Count));

    No Obstante mirare de hacerlo como tu dices a ver si puedo.

    Un Saludo y muchas gracias.

    articuloDatasource.xaml.cs

    //      *********    NO MODIFIQUE ESTE ARCHIVO     *********
    //      Este archivo se regenera mediante una herramienta de diseño.
    //       Si realiza cambios en este archivo, puede causar errores.
    namespace Expression.Blend.SampleData.articulosDataSource
    {
    	using System; 
    
    // To significantly reduce the sample data footprint in your production application, you can set
    // the DISABLE_SAMPLE_DATA conditional compilation constant and disable sample data at runtime.
    #if DISABLE_SAMPLE_DATA
    	internal class articulosDataSource { }
    #else
    
    	public class articulosDataSource : System.ComponentModel.INotifyPropertyChanged
    	{
    		public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    
    		protected virtual void OnPropertyChanged(string propertyName)
    		{
    			if (this.PropertyChanged != null)
    			{
    				this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    			}
    		}
    
    		public articulosDataSource()
    		{
    			try
    			{
    				System.Uri resourceUri = new System.Uri("/WpRGC;component/SampleData/articulosDataSource/articulosDataSource.xaml", System.UriKind.Relative);
    				if (System.Windows.Application.GetResourceStream(resourceUri) != null)
    				{
    					System.Windows.Application.LoadComponent(this, resourceUri);
    				}
    			}
    			catch (System.Exception)
    			{
    			}
    		}
    
    		private ItemCollection _Collection = new ItemCollection();
    
    		public ItemCollection Collection
    		{
    			get
    			{
    				return this._Collection;
    			}
    		}
    	}
    
    	public class Item : System.ComponentModel.INotifyPropertyChanged
    	{
    		public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    
    		protected virtual void OnPropertyChanged(string propertyName)
    		{
    			if (this.PropertyChanged != null)
    			{
    				this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    			}
    		}
    
    		private string _Property1 = string.Empty;
    
    		public string Property1
    		{
    			get
    			{
    				return this._Property1;
    			}
    
    			set
    			{
    				if (this._Property1 != value)
    				{
    					this._Property1 = value;
    					this.OnPropertyChanged("Property1");
    				}
    			}
    		}
    	}
    
    	public class ItemCollection : System.Collections.ObjectModel.ObservableCollection<Item>
    	{ 
    	}
    #endif
    }
    

    articuloDatasource.xaml

    <!--
          *********    NO MODIFIQUE ESTE ARCHIVO     *********
          Este archivo se regenera mediante una herramienta de diseño.
           Si realiza cambios en este archivo, puede causar errores.
    -->
    <SampleData:articulosDataSource xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.articulosDataSource" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
      <SampleData:articulosDataSource.Collection>
        <SampleData:Item Property1="101 - Aplicación de las normas." />
        <SampleData:Item Property1="102 - Dudas e interpretación y falta de normas." />
        <SampleData:Item Property1="103 - Obligaciones de los mandos." />
        <SampleData:Item Property1="104 - Obligaciones de los agentes." />
        <SampleData:Item Property1="105 - Prescripciones generales de servicio." />
        <SampleData:Item Property1="106 - Transmisión del servicio." />
        <SampleData:Item Property1="107 - Reservado." />
        <SampleData:Item Property1="108 - Reservado." />
        <SampleData:Item Property1="109 - Personal que interviene en la circulación." />
        <SampleData:Item Property1="110 - Circulación." />
        <SampleData:Item Property1="111 - Trenes" />
        <SampleData:Item Property1="112 - Reservado." />
        <SampleData:Item Property1="113 - Reservado." />
        <SampleData:Item Property1="114 - Normas de circulación." />
        <SampleData:Item Property1="115 - Reglamento general de circulación." />
        <SampleData:Item Property1="116 - Manual de circulación." />
        <SampleData:Item Property1="117 - Consigana A." />
        <SampleData:Item Property1="118 - Consigana B." />
        <SampleData:Item Property1="119 - Consigana C." />
        <SampleData:Item Property1="120 - Consigana de pruebas." />
        <SampleData:Item Property1="121 - Horario de los trenes." />
        <SampleData:Item Property1="122 - Ordenes A." />
        <SampleData:Item Property1="123 - Ordenes B." />
        <SampleData:Item Property1="124 - Noticias." />
        <SampleData:Item Property1="125 - Avisos." />
        <SampleData:Item Property1="126 - Redaccion de los documentos." />
        <SampleData:Item Property1="127 - Reservado." />
        <SampleData:Item Property1="128 - Distribución de documentos." />
        <SampleData:Item Property1="129 - Documentación de servicio." />
        <SampleData:Item Property1="130 - Utiles de servicio." />
        <SampleData:Item Property1="131 - Falta de documentos o útiles." />
        <SampleData:Item Property1="132 - Reservado." />
        <SampleData:Item Property1="133 - Reservado." />
        <SampleData:Item Property1="134 - Clasificación de las comunicaciones." />
        <SampleData:Item Property1="135 - Trasnmisión de los tolefonemas." />
        <SampleData:Item Property1="136 - Registro de los telefonemas." />
        <SampleData:Item Property1="137 - Reservado." />
        <SampleData:Item Property1="138 - Reservado." />
        <SampleData:Item Property1="139 - Señales." />
        <SampleData:Item Property1="140 - Instalaciones de seguridad." />
        <SampleData:Item Property1="141 - Condiciones de marcha especiales." />
        <SampleData:Item Property1="142 - Tren." />
        <SampleData:Item Property1="143 - Paradas de los trenes." />
        <SampleData:Item Property1="144 - Detención de los trenes." />
        <SampleData:Item Property1="145 - Orden de marcha." />
        <SampleData:Item Property1="146 - Velocidades." />
        <SampleData:Item Property1="147 - Circulación de los trenes." />
        <SampleData:Item Property1="148 - Tipos de tren." />
        <SampleData:Item Property1="149 - Sentido de la circulación." />
        <SampleData:Item Property1="150 - Bloque de los trenes." />
        <SampleData:Item Property1="151 - Como se asegura el bloqueo." />
        <SampleData:Item Property1="152 - Conducción automática de trenes." />
        <SampleData:Item Property1="153 - Estaciones de servicio intermitente." />
        <SampleData:Item Property1="154 - Regímenes para trabajos en la via." />
        <SampleData:Item Property1="155 - Dispositivos de enganche de los vehiculos." />
        <SampleData:Item Property1="156 - Frenado." />
        <SampleData:Item Property1="157 - Maniobras." />
        <SampleData:Item Property1="158 - Mercancias peligrosas." />
      </SampleData:articulosDataSource.Collection>
    </SampleData:articulosDataSource>

    Y articuloDatasource.xsd

    <?xml version="1.0" encoding="utf-8"?>
    <!--
          *********    NO MODIFIQUE ESTE ARCHIVO     *********
          Este archivo se regenera mediante una herramienta de diseño.
           Si realiza cambios en este archivo, puede causar errores.
    -->
    <xs:schema xmlns:tns="Expression.Blend.SampleData.articulosDataSource" xmlns:blend="http://schemas.microsoft.com/expression/blend/2008" targetNamespace="Expression.Blend.SampleData.articulosDataSource" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="articulosDataSource" type="tns:articulosDataSource" />
      <xs:complexType name="articulosDataSource">
        <xs:sequence>
          <xs:element name="Collection" type="tns:ItemCollection" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ItemCollection">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" name="Item" type="tns:Item" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Item">
        <xs:attribute name="Property1" type="xs:string" />
      </xs:complexType>
    </xs:schema>

    viernes, 13 de abril de 2012 15:48