none
Ayuda con el DataGrid RRS feed

  • Pregunta

  • Bueno, tengo mi datagrid con unas columnas asi:

    <DataGrid Margin="12,257,12,98" Name="dgTransacciones" CanUserReorderColumns="False"><br/>
          <DataGrid.Columns><br/>
            <DataGridTextColumn Header="Cuenta" Width="*"/><br/>
            <DataGridTextColumn Header="Descripción" Width="2*" /><br/>
            <DataGridTextColumn Header="Tipo" Width="*"/><br/>
            <DataGridTextColumn Header="Valor" Width="*"/><br/>
            <DataGridTextColumn Header="Tercero" Width="*"/><br/>
            <DataGridTextColumn Header="Análisis" Width=".7*"/><br/>
            <DataGridTextColumn Header="CC" Width=".7*"/><br/>
          </DataGrid.Columns><br/>
    <br/>
          <DataGrid.RowDetailsTemplate><br/>
            <DataTemplate><br/>
              <Grid Name="Grid1" VerticalAlignment="Top"><br/>
                <Grid.ColumnDefinitions><br/>
                  <ColumnDefinition Width="Auto" /><br/>
                  <ColumnDefinition Width="Auto" /><br/>
                  <ColumnDefinition Width="434*" /><br/>
                </Grid.ColumnDefinitions><br/>
                <Label Content="Cuenta" FontSize="14" Name="Label3" FontWeight="Bold" Margin="12,1,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" /><br/>
                <Label Content="[Cta]" FontSize="14" Name="lblDTCta" Margin="66,1,0,0" VerticalAlignment="Top" /><br/>
                <Label Content="Tercero" Name="Label1" FontSize="14" FontWeight="Bold" HorizontalAlignment="Left" Margin="21,3,0,0" Grid.Column="1" VerticalAlignment="Top" /><br/>
                <Label Content="[Ter]" FontSize="14" Name="lblDTTer" Grid.Column="1" Margin="94,3,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" /><br/>
                <Label FontSize="14" Name="lblDTValor" Margin="0,1,27,0" FontWeight="Bold" HorizontalAlignment="Right" Grid.Column="2" Content="+ - Valor" VerticalAlignment="Top" /><br/>
              </Grid><br/>
            </DataTemplate><br/>
          </DataGrid.RowDetailsTemplate><br/>
        </DataGrid>
    

    Y su datasource se da asi:

     oNota = New NotaContabilidad.NotaContabilidad(Fuente, Consecutivo)<br/>
    dgTransacciones.ItemsSource = CreateDataSource(oNota)<br/>
    <br/>
      Function CreateDataSource(ByVal nota As NotaContabilidad.NotaContabilidad) As ICollection<br/>
        Dim dt As New DataTable()<br/>
        Dim dr As DataRow<br/>
    <br/>
        dt.Columns.Add(New DataColumn("Cuenta", GetType(Int32)))<br/>
        dt.Columns.Add(New DataColumn("Descripción", GetType(String)))<br/>
        dt.Columns.Add(New DataColumn("Tipo", GetType(Boolean)))<br/>
        dt.Columns.Add(New DataColumn("Valor", GetType(Double)))<br/>
        dt.Columns.Add(New DataColumn("Tercero", GetType(Double)))<br/>
        dt.Columns.Add(New DataColumn("Análisis", GetType(Integer)))<br/>
        dt.Columns.Add(New DataColumn("CC", GetType(Integer)))<br/>
        For i As Integer = 0 To nota.Transaccion.Count - 1<br/>
          dr = dt.NewRow()<br/>
          dr(0) = nota.Transaccion(i).Cuenta.Codigo<br/>
          dr(1) = nota.Transaccion(i).Derscripcion<br/>
          dr(2) = nota.Transaccion(i).Tipo<br/>
          dr(3) = nota.Transaccion(i).Valor<br/>
          dr(4) = nota.Transaccion(i).Tercero.Identificacion<br/>
          dr(5) = nota.Transaccion(i).Analisis.Codigo<br/>
          dr(6) = nota.Transaccion(i).CentroCosto.Codigo<br/>
          dt.Rows.Add(dr)<br/>
        Next i<br/>
    <br/>
        Dim dv As New DataView(dt)<br/>
        Return dv<br/>
      End Function 'CreateDataSource<br/>
    
    

    y el resultado es que genera columnas al lado de las que establezco por xml

    lo que quiero es que queden en las que determino en xml... yo se que si quito las columnas, por autogeneratecolumns sale todo bn, pero lo que quiero es que conserven la propiedad width que les puse en xml...

     

    ademas, estoy manejando el RowDetailTemplate, que me causa otro dolor de cabeza, y es que cuando quito las columnas del xml, anda perfeceto, pero cunado las tiene, al redimencionar la ventana acia la derecha, el grid lo hace bien, pero cuando lo hago hacia la izquierda, el grid no se redimenciona y oculta lo que no cabe...

    ¿Alguna solucion?

    Gracias

    Saludos desde Cartagena, COL

    martes, 3 de agosto de 2010 3:42

Todas las respuestas

  • ¡Hola!

    Sergio Griado dice: pero lo que quiero es que conserven la propiedad width que les puse en xml ¿Puedes poner el XML?. AL menos un fragmento. No entiendo tu pregunta.

    Pon:

    AutoGenerateColumns ="False"
    <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Cuenta}" Header="CUENTA" Width="0.40*"/>
    lunes, 16 de agosto de 2010 13:38
  • Hola, disculpen como agrego una fila al datagrid? por codigo para cuando este carge en el evento load se pueda generar?
    miércoles, 27 de octubre de 2010 15:33