pessoal, pelo que entendi, nao tem como fazer um foreach em um datagrid no silverlight, tenho uma grid que mostrará status, ou seja, se uma celula conter o valor -1, ficara vermelha, se 0(zero), ficara amarelo, e maior que 1, ficará verde, como faço isso ?

Exibições: 179

Respostas a este tópico

Olá,

Uma forma de fazer é utilizar o evento LoadingRow como exemplo, ao criar o grid todas as celulas vão passar por esse evento.

para Acessar as propriedades utilize

TextBlock txt0 = dtg.Columns[0].GetCellContent(e.Row) as TextBlock;

E o  data contexto

iGecexSilver.MyClass p = e.Row.DataContext as iGecexSilver.MyClass;

if(Convert.ToInt16(p.Status) == -1)

{

  txt0.Foreground = new SolidColorBrush(Colors.Red);

}

Americo, muito obrigado pela ajuda, deu certinho, só mais uma coisa, o TextBlock nao tem a propriedade Background, ou seja para colorir a celula inteira, ao inves de mudar somente a cor da fonte, saberia me dizer qual outro componente que poderia utilizar no lugar do TextBlock, tentei com o TextBox, mas dá erro.

Crie um template column

    <data:DataGridTemplateColumn Width="40" Header="Status" IsReadOnly="True" >
                    <data:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate >
                            <TextBox Name="txtboxstatus"/>
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellTemplate>
                </data:DataGridTemplateColumn>

E busque no evento

TextBox txtboxstatus = myGrid.Colums[10].GetCellContent(e.Row).FindName("imgLd") as TextBox;

Americo, nesse bloco de codigo

TextBox txtboxstatus = myGrid.Colums[10].GetCellContent(e.Row).FindName("imgLd") as TextBox;

o que seria "imgDL" ?

É o name

TextBox txtboxstatus = myGrid.Colums[10].GetCellContent(e.Row).FindName("txtboxstatus") as TextBox;

RSS

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço