none
WPF: Width dinamico RRS feed

  • Pregunta

  • Buenos dias,

    Tengo un grid creado dinamicamente, y sus columnas se ajustan perfectamente cuando agrando/reduzco el tamaño de la ventana.

    Mi problema es que tengo un textBlock fuera del grid que tiene que tomar el tamaño de una columna en concreto del grid.

     <TextBlock Text="Club1" FontWeight="Bold" HorizontalAlignment="Center" Width = "{Binding ElementName=columne, Path=ActualWidth}" />

    esta linea de codigo no me funciona porque no se que debo poner exactamente en columne (probe ponerle un name a la columna y nada.

    En cambio si en vez de sincronyzar el textBlock con una columna lo syncronizo con otro textBlock por ejemplo me va perfectamente...por lo que deduzco que al ser una columna de un grid hay que ponerlo de otra forma..

    Alguna idea chic@s?? 

    Gracias de antemano.

    lunes, 9 de enero de 2012 9:38

Respuestas

Todas las respuestas

  • ¿Has probado con Grid.Column?
    Carlos Adrián Martínez
    lunes, 9 de enero de 2012 9:48
  • que quieres decir exactamente? 

    nombreGrid.nombrecolumna ? si es asi...no funciona

    tambien probe con nombreGrid.Columns.GetColumnByName(nombrecolumna)   pero nada...

    lunes, 9 de enero de 2012 9:57
  • ¿Puedes poner el código para que lo veamos, por favor?

    Gracias


    Carlos Adrián Martínez
    lunes, 9 de enero de 2012 9:59
  • Esta es mi columna (de un GridControl de devexpress)
     <dxg:GridColumn FieldName ="cmdId" Name="columne" Header="Id" Width="70" AllowGrouping="False"  AllowAutoFilter="False" ImmediateUpdateAutoFilter="False" ImmediateUpdateColumnFilter="False">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings />
                        </dxg:GridColumn.EditSettings>
      </dxg:GridColumn>
    y fuera de este grid control tengo un textBlock
    <TextBlock Text="Club1" FontWeight="Bold" HorizontalAlignment="Center" Width = "{Binding ElementName=columne, Path=ActualWidth}" />
    Yo quiero que mi textBlock pille el width de esa columna.
    Gracias.
    lunes, 9 de enero de 2012 10:06
  • No conozco el grid control de DevExpress, pero creo que aquí tienes lo que buscas:

    http://stackoverflow.com/questions/414310/wpf-datagrid-sync-column-widths

     

    Espero que te sea de ayuda


    Carlos Adrián Martínez
    • Marcado como respuesta shere_m jueves, 12 de enero de 2012 11:53
    lunes, 9 de enero de 2012 10:40
  • Mira a ver si esto te vale de algo:

    <Grid.ColumnDefinitions>  <ColumnDefinition Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}, AncestorLevel=2}, Path=ColumnDefinitions[0].Width}" />  <ColumnDefinition SharedSizeGroup="B"/>  <ColumnDefinition SharedSizeGroup="C"/>  <ColumnDefinition SharedSizeGroup="D"/>  <ColumnDefinition Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}, AncestorLevel=2}, Path=ColumnDefinitions[4].Width}" />  </Grid.ColumnDefinitions>
    


    Carlos Adrián Martínez
    martes, 10 de enero de 2012 11:33
  • ¿Se solucionó el problema? ¿Te sirvió la última respuesta?

     

    Un saludo.


    Carlos Adrián Martínez
    jueves, 12 de enero de 2012 11:01
  • Este link me sirvio...pero la respuesta que dan como correcta(a mi no me sirvio), si no mas bien una de las demas respuestas. Utilizando el evento 

    private void dataGrid1_LayoutUpdated(object sender, EventArgs e)
    Muchisimas gracias por todo.

    • Marcado como respuesta shere_m jueves, 12 de enero de 2012 11:55
    jueves, 12 de enero de 2012 11:54