none
enlazar registro datagrid con 2 texbox RRS feed

  • Pregunta

  • Hola este enlace es una continuacion de un anterior enlace donde gracias a  vuestra ayuda se muestran los valores del datagrid ordenados.

    enlace:

        http://social.msdn.microsoft.com/Forums/es-ES/wpfes/thread/4f787f56-d6b5-4711-b1c0-ddb864324f5b

    el caso es que me interesaria enlazar el row del datagrid con los texbox, dejo imagen para mostrar lo que deseo hacer:

          http://yfrog.com/f/fximagenventanaj/

    mi  carga del datagrid es:

    'declaraciones
    Private dsant As New amistatsDataSet1
      Private cussants As New amistatsDataSet1TableAdapters.santoralTableAdapter
      Dim View As System.Data.DataView
    
      Public Sub New()
        ' This call is required by the designer.
        InitializeComponent()
    
        'aqui cargo el dataset
        cussants.Fill(dsant.santoral)
        View = dsant.santoral.DefaultView
        'ahora ordenamos el datagrid
        View.Sort = "nom" 
        grdDatos.ItemsSource = DirectCast(View.ToTable(), System.ComponentModel.IListSource).GetList
    
    
      End Sub
    

    un compañero me ha propuesto una solucion, declarando propertys , pero me genera muchos errores..

    hay alguna manera'simple' de enlazar los texbox con la fila del datagrid?

    Gracias


     


    Spandau
    sábado, 13 de noviembre de 2010 12:00

Respuestas

  • Hola Spandau

    Ya he visto el código.

    El problema lo tienes en el new de tu ventana, estás asignando la vista al ItemsSource del Datagrid, de esta forma los textbox no tienen fuente de datos.

    Debes asignar la vista que creas al DataContext de la ventana, igual que en la mainwindow estableces el dataset amistats a la ventana.

    Si cambias en window1.xaml.vb esta línea:

    grdDatos.ItemsSource = DirectCast(View.ToTable(), System.ComponentModel.IListSource).GetList
    

    Por esta otra:

    Me.DataContext = DirectCast(View.ToTable(), System.ComponentModel.IListSource).GetList
    

    Todo funcionará a la primera.

    Con respecto al nombre de los meses, puedes forzar a WPF a usar un lenguaje específico en la ventana, añadiendo el atributo languaje a la declaración de tu ventana en XAML: 

    <Window x:Class="Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="SANTORAL" Height="300" Width="500" Language="ca-ES" >
    

    Espero haberte ayudado, un gran saludo!

     


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta Spandau domingo, 27 de febrero de 2011 23:25
    domingo, 27 de febrero de 2011 2:18
    Moderador

Todas las respuestas

  • ¡Hola!

    Prueba a ver si esto te funciona. No lo he probado en Silverlight. Sé que en Windows form va: http://www.solocodigo.com/foros/viewtopic.php?f=50&t=30614

    Saludos,

    domingo, 14 de noviembre de 2010 21:07
  • Gracias corsario,

    estoy buscando una solucion así, simple, pero entiendo que tiene que ir el codigo  en xaml, creo que no es correcto el ejemplo, he mirado de hacer modificaciones y no hay manera. gracias


    Spandau
    domingo, 14 de noviembre de 2010 22:25
  • ¡Hola!

    Prueba a ver si esto te funciona. No lo he probado en Silverlight. Sé que en Windows form va: http://www.solocodigo.com/foros/viewtopic.php?f=50&t=30614

    Saludos,


    Holan corsario, despues de dejar el proyecto aparcado... quiero acabarlo.

    la propiedad del  DataSource  del datagrid me genera error...

    hay alguna manera de realizar este enlace??

     

    GRACIAS

     


    Spandau
    miércoles, 23 de febrero de 2011 22:13
  • Hola!

    Te dejo un artículo que escribi hace tiempo explicando justamente como hacer esto que necesitas:

    http://jyeray.blogspot.com/2010/05/net-4-wpf-descubriendo-la-potencia-de.html

    En este artículo enseño como enlazar un dataset a una datagrid y al seleccionar una row mostrar los datos en otros controles.

    Un saludo!

     


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Propuesto como respuesta CorsarioVasco jueves, 24 de febrero de 2011 15:13
    jueves, 24 de febrero de 2011 10:56
    Moderador
  • Gracias Josue,

    ya lo havia visto.... de hecho de tu proyecto saque la idea.... el problema es que quiero mostrar los registros por orden alfabético ... con un View.sort y ahora no me enlazan los datagrids con los texbox....no se si me exlico...

    Gracias


    Spandau
    jueves, 24 de febrero de 2011 23:49
  • Hola Spandau

    Si te parece bien, puedes poner el proyecto colgado en algun sitio donde pueda descargarmelo, le hecho un vistazo y te respondo con la forma correcta de enlazarlo todo.

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    sábado, 26 de febrero de 2011 12:53
    Moderador
  • Hola Josue,

    mi 'proyecto' para decirlo de alguna manera, lo empecé a partir del proyecto que colgaste hace mucho tiempo y que has mencionado anteriormente, me gusta su  simplicidad, aunque yo lo he querido complicar un poco....para 'coger soltura' lo he modificado..añado registros, elimino...etc. para  ver si asi le voy cogiendo soltura al WPF...

     

    Mi problema me surge cuando quiero  ordenar los registros... he seguido los consejos de mis compañeros de foro y lo  he conseguido con la propiedad SORT... pero ahora he perdido el enlace de datagrid con los texbox que mostraban  los campos seleccionados en el datagrid.

     

    Para no liarme en mi ventana de inicio.... he realizado el orden en la ventana que se abre al hacer click en el boton Santoral de la ventana inicial y que es la clase Window1

    Como podras ver el datagrid lo tengo perfectamente ordenado pero no he conseguido enlazar registro con texbox.. tambien me gustaria que me funcionase el boton añadir registro/eliminar/guardar

    Otro problema que me ha hecho perder mucho tiempo y que no me sale es el formato fecha...me sale en ingles y me gustaria editarlo/mostrarlo en nuestra lengua...

    enlace:

       http://cid-b85627fda5bc8532.office.live.com/self.aspx/.Public/amistats.rar


    Spandau
    domingo, 27 de febrero de 2011 1:09
  • Hola Spandau

    Ya he visto el código.

    El problema lo tienes en el new de tu ventana, estás asignando la vista al ItemsSource del Datagrid, de esta forma los textbox no tienen fuente de datos.

    Debes asignar la vista que creas al DataContext de la ventana, igual que en la mainwindow estableces el dataset amistats a la ventana.

    Si cambias en window1.xaml.vb esta línea:

    grdDatos.ItemsSource = DirectCast(View.ToTable(), System.ComponentModel.IListSource).GetList
    

    Por esta otra:

    Me.DataContext = DirectCast(View.ToTable(), System.ComponentModel.IListSource).GetList
    

    Todo funcionará a la primera.

    Con respecto al nombre de los meses, puedes forzar a WPF a usar un lenguaje específico en la ventana, añadiendo el atributo languaje a la declaración de tu ventana en XAML: 

    <Window x:Class="Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="SANTORAL" Height="300" Width="500" Language="ca-ES" >
    

    Espero haberte ayudado, un gran saludo!

     


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta Spandau domingo, 27 de febrero de 2011 23:25
    domingo, 27 de febrero de 2011 2:18
    Moderador
  • Hola Josue,

    y tanto que me has ayudado!!!!

    ya me funciona!!

     

    Si no es abusar de tu confianza.... no tengo muy claro/no me funciona el crear nuevo registro... lo tengo asi:

    Try
          Dim row As System.Data.DataRow
          row = dsants.santoral.NewRow
          txtnom.Text = ""
          txtdata.Text = ""<br/>
    Cath<br/>
      ......
    

    los texbox funcionan.... pero me modifican el registro del datagrid que tiene el foco.....como lo soluciono??

     

    MUCHISIMAS GRACIAS!!


    Spandau
    domingo, 27 de febrero de 2011 23:36