none
Enlazar un Combobox con un Datagrid en Silverlight RRS feed

  • Pregunta

  • Ojalá que alguien me pueda ayudar con una duda, estoy usando RIA Services para acceder a mi base de datos SQL que está en un servidor, desde un proyecto Aplicación de Silverlight, ya tengo enlazados un Datagrid a una tabla, y un Combobox a otra tabla, ya me muestra cada control los datos correctamente, pero ahora quiero enlazar los controles, es decir, cuando Seleccione un registro en el Combobox, quiero que en el Datagrid me ponga únicamente los registros que cumplan con el ID que seleccioné en el Combobox, ya hice un Query en el DomainService que cargue el datagrid con un filtro:
            public IQueryable<mtto_tipoequipo> GetMtto_TipoEquipoxCategoriaEquipo(int _CategoriaEquipo)
    
            {
    
                return this.ObjectContext.mtto_TipoEquipo.Where(p=>p.IDCategoriaEquipo == _CategoriaEquipo);
    
            }
    

    y en el XAML en el datagrid puse:

            <riacontrols:domaindatasource autoload="True" d:designdata="{d:DesignInstance Web:mtto_TipoEquipo, CreateList=true}" height="0" loadeddata="mtto_TipoEquipoDomainDataSource_LoadedData" queryname="GetMtto_TipoEquipoxCategoriaEquipoQuery" width="0" x:name="mtto_TipoEquipoDomainDataSource">
    
                <riacontrols:domaindatasource.domaincontext>
    
                    <web:domainservicemtto>
    
                </web:domainservicemtto></riacontrols:domaindatasource.domaincontext>
    
                <riacontrols:domaindatasource.queryparameters>
    
                    <riacontrols:parameter parametername="_CategoriaEquipo" value="{Binding ID, ElementName=mtto_CategoriaEquipoDomainDataSource}">
    
                </riacontrols:parameter></riacontrols:domaindatasource.queryparameters>
    
            </riacontrols:domaindatasource>
    

    y para el Combobox tengo:

                <combobox displaymemberpath="ID" grid.column="1" grid.row="0" height="23" horizontalalignment="Left" itemssource="{Binding}" margin="3,0,-186,3" style="{StaticResource ComboBoxMtto}" verticalalignment="Center" width="309" x:name="cbCategoriaEquipo">
    
                    <combobox.itemspanel>
    
                        <itemspaneltemplate>
    
                            <virtualizingstackpanel>
    
                        </virtualizingstackpanel></itemspaneltemplate>
    
                    </combobox.itemspanel>
    
                </combobox>
    

    Pero cuando agregué esta parte de los Parámetros al Datagrid, dejó de mostrarme datos en el Datagrid, algo está mal??
    Ojalá me pueda alguien orientar o indicarme algún ejemplo que pueda consultar, he estado buscando en internet y no he encontrado un ejemplo similar. Saludos y gracias


    cyndyrdz

    lunes, 16 de diciembre de 2013 16:41

Respuestas

  • Lo resolví un poco después, agrego la solución por si a alguien le sirve

    Obviamente el problema era que no estaba indicando correctamente el campo por el que se debía filtrar la información presentada en el Datagrid, el cual le mandaba como parámetro al query que carga esos datos, lo que hice fue agregar en la definición del ComboBox:

    SelectedValuePath="ID"

    y en los parámetros cambié esta parte:

     <riaControls:Parameter ParameterName="_CategoriaEquipo" Value="{Binding SelectedValue, ElementName=cbCategoriaEquipo}"/>

    y listo!!! funciona como yo esperaba

    Saludos


    cyndyrdz

    miércoles, 8 de enero de 2014 14:49