none
silverlight ComboBox Error 4004 RRS feed

  • Pregunta

  • Hola, ojala alguien me pueda ayudar por favor, Realizando la aplicacion en VS2010, Silverlight(RIA Services), SQL2008 express, C#.

    PROBLEMA: Busco el registro en la base de datos y cargo el formulario (la primera vez lo hace sin problemas, la segunda vez marca un error (4004)) q dice así, category: ManagedRuntimeError, Message: System.NullReferenceException: Referencia a Objeto no establecida como instancia de un objeto. Al hacer puntos de interrupcion me carca el error al cargar los datos en el ComboBox(CBoxSexo). Si le pongo un valor al index tambiem me marca el error.

    Creacion del comboBox:

    public void MxSexo()
            {
                CBoxSexo.Items.Add("Femenino");
                CBoxSexo.Items.Add("Masculino");
            }

    publicvoid CargarDatos()

    {

             CBoxSexo.SelectedItem = null;

               if (String.IsNullOrEmpty(Convert.ToString(Context.DPARKINSONs.FirstOrDefault().Sexo)) == true)             {                 CBoxSexo.Background = new SolidColorBrush(Colors.Red);                 //CBoxSexo.SelectedIndex = 0;             }             else             {                 CBoxSexo.Background = new SolidColorBrush(Colors.Red);                 //CBoxSexo.SelectedIndex = 0;                 W_Sexo = Convert.ToString(Context.DPARKINSONs.First().Sexo);                 if (W_Sexo == "F")                 {                                            CBoxSexo.Background = new SolidColorBrush(Colors.White);                         CBoxSexo.SelectedIndex = 0;                 }                 if (W_Sexo == "M")                 {                         CBoxSexo.Background = new SolidColorBrush(Colors.White);                         CBoxSexo.SelectedIndex = 1;                 }             }

    mil gracias

    Att: Jose Garcia.

    miércoles, 12 de junio de 2013 23:21

Respuestas

  • Pue Yo no veo nada raro en el codigo que has puesto. Cuando comentas:

    Al hacer puntos de interrupcion me carca el error al cargar los datos en el ComboBox(CBoxSexo)

    Te refieres en esta linea

    CBoxSexo.Items.Add("Femenino");

    Si es asi no tendras en alguna parte del codigo CBoxSexo= null;

    Para dejar la selección de un combo en blanco es como te he comentado CBoxSexo.SelectedIndex = -1;

    O añade un Item vacio

    CBoxSexo.Items.Add(""); Pero esto ultimo te mobera los indices del combo.


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    • Marcado como respuesta lukysea lunes, 17 de junio de 2013 16:57
    viernes, 14 de junio de 2013 7:39

Todas las respuestas

  • Creo que tu problema esta en esta linea

    CBoxSexo.SelectedItem = null;

    Si lo que quieres es que no esté seleccionado nada en el

    combo cámbiala por

    CBoxSexo.SelectedIndex = -1;


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    jueves, 13 de junio de 2013 7:45
  • Tambien me marca el mismo error al poner (-1 o 0 ), lo que quiero es que al consultar otro registro el combobox no ponga nada si esta en blaco o el index en cero si es F o 1 si es M en la base, el campo de sexo trae ("  " un blanco,  F o M), algo esta incorreco x q me marca error.

    • Editado lukysea jueves, 13 de junio de 2013 23:20
    jueves, 13 de junio de 2013 22:58
  • Pue Yo no veo nada raro en el codigo que has puesto. Cuando comentas:

    Al hacer puntos de interrupcion me carca el error al cargar los datos en el ComboBox(CBoxSexo)

    Te refieres en esta linea

    CBoxSexo.Items.Add("Femenino");

    Si es asi no tendras en alguna parte del codigo CBoxSexo= null;

    Para dejar la selección de un combo en blanco es como te he comentado CBoxSexo.SelectedIndex = -1;

    O añade un Item vacio

    CBoxSexo.Items.Add(""); Pero esto ultimo te mobera los indices del combo.


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    • Marcado como respuesta lukysea lunes, 17 de junio de 2013 16:57
    viernes, 14 de junio de 2013 7:39
  • Si asi lo resolvi, tube que adicionar uno mas, poner al combox(CBoxSexo.Add = "";)

    y ya pude poner un valor al SelectedIndex, pero por que no puedeo ponerles -1 al index. todavia tengo esa duda.  

    lunes, 17 de junio de 2013 17:01
  • Hola.

    Le he estado dando vueltas a lo de que no te deja poner el index en -1 y no encuentro nada, como te comente en el código c# no veo ningún problema. ¿ podrías poner la parte de xaml donde declaras el combo haber si hay se ve algo raro.


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    martes, 18 de junio de 2013 10:52
  • Aqui esta la App y la base : https://skydrive.live.com/?cid=AF00C83B0BE541CA&id=AF00C83B0BE541CA%21129#cid=AF00C83B0BE541CA&id=AF00C83B0BE541CA%21393

    Este es el codigo ComboBox (CBoxSexo) XAML :

    <ComboBox x:Name="CBoxSexo" HorizontalAlignment="Left" Height="22" Margin="143,52,0,0" VerticalAlignment="Top" Width="160" Foreground="#FF060606" ToolTipService.ToolTip="Seleccione (M=Masculino, F=Femenino)" SelectionChanged="CBoxSexo_SelectionChanged" />
    

    Tambien me marca error al ponerle un valor a otro combobox (CBoxLater) Xaml: 

    <ComboBox DisplayMemberPath="LATDESC" Grid.Column="1" Height="23" HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="0,3" x:Name="CBoxLater" VerticalAlignment="Center" Width="217" Foreground="#FF060606" ToolTipService.ToolTip="Seleccione la lateralidad" SelectionChanged="CBoxLater_SelectionChanged"> <ComboBox.ItemsPanel> <ItemsPanelTemplate>  <VirtualizingStackPanel />  </ItemsPanelTemplate>  </ComboBox.ItemsPanel></ComboBox>

    En la base hay una tabla MLATERIDAD (Clave = 0 y Desc=No especifica)

    en otra tabla PARKINSON en el campo (Later=0) en esta tabla se guarda la informacion caprutada.

    El codigo C#:

    W_Later = Convert.ToInt32(Context.DPARKINSONs.First().Later);

    CBoxLater.SelectedIndex = W_Later; // Error 4004 <== Aqui esta el error
    CBoxLater.Background = new SolidColorBrush(Colors.White);

    la imagen esta aqui

    Error 4004 Silverlight, c#

    Gracias 1000 a la 10000 y mas: jmgg
    martes, 18 de junio de 2013 18:43
  • Hola.

    Descargue tu proyecto pero no me deja abrirlo yo uso visual studio 2010. He podido abrir modulos indibidual mente y lo que he podido ver esta bien. No se de donde puede venir el error. Siento no poder ayudarte.

    Un saludo.


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    jueves, 20 de junio de 2013 10:13
  • Gracias de todos modos, mil gracias..
    jueves, 20 de junio de 2013 16:04
  • Hola q tal Rodripelto: pido tu ayuda para poder resolver esta otra duda que tengo. Quisiera por favor que me ayudes. Mi Aplicacion (Silverlight 4, C#, VS2010, Ria Services, NET 4), lo que tengo que hacer es mandar a imprimir TabControl (0-8) y me caben bien en 4 pagina de impresion + titulos y num de paginas. Ejemplo:

    No. Pagina 1 (El numero de pagina debe ir en pie de pagina, a la derecha )

    Titulo1= "REGISTRO MEXICANO "  con font =20, centrado, Bold. como le hago para pasar al siguiente renglon.

    Titulo2="Estudio de cohorte " Con font =14, centrado, cursiva, como le hago para pasar al siguiente renglon.

    Imprimir un Canvas (Canvas10 asi se llama en XAML q tiene labes y txt)

    Aqui imprimir los TabControl (GpoID 1-8) asi se llama el grid de cada TabControl.

    GpoId

    GpoId2

    Pagina 2

    GpoId3

    GpoId4

    Pagina 3

    GpoId5

    GpoId6

    Pagina 4

    GpoId7

    GpoId8

    Super mil garcias.
    Lo que pude hacer con el ejemplo de microsoft es imprimir lo que esta en pantalla, pero me faltan los titulos, el siguiente grid en la misma pagina y crear las demas paginas con los grid.

    // create an instance of PrintDocument

                PrintDocument document = new PrintDocument();

                // tell the API what to print

                document.PrintPage += (s, args) =>

                {

                    args.PageVisual = LayoutRoot;

                };           

                document.Print("Print In Silverlight");

    lunes, 1 de julio de 2013 2:57
  • Hola.

    Mira este ejemplo http://programandoenpuntonet.blogspot.com.es/2009/01/imprimir-el-contenido-de-un.html haber si te es util.


    No hay problema bajo el Sol que no tenga solución. Nunca una noche ha vencido a un amanecer.

    lunes, 1 de julio de 2013 8:11
  • gracias
    martes, 9 de julio de 2013 3:17