Domanda

Non riesco a capire come aggiungere il parametro format al seguente colonna di DataGrid. Ho bisogno di mostrare il numero con due decimali.

Ho un DataGrid silverlight che sto aggiungendo le colonne in modo dinamico. Creo la colonna e applicare una dinamica di legame (che so opere)

    public static DataGridTextColumn CreateFloatColumn(int index, string fieldName, string header, string description)
    {
        DataGridTextColumn column = new DataGridTextColumn();
        column.Header = header;
        column.HeaderStyle = BuildColumnHeaderStyle(description);
        Binding newBinding = new Binding("floatValuesList[" + index + "]");
        column.Binding = newBinding;
        column.CellStyle = BuildCellStyle(fieldName, description);
        return column;
    }

Ora ho anche bisogno di formattare il valore. In questo caso si tratta di un valore float viene mostrato. Come faccio ad applicare la formattazione al legame? A questo punto, tutto quello che voglio è il numero e due punti decimali per mostrare, ma mi piacerebbe che fosse un po 'flessibile e mi permetta di mostrare un numero variabile di punti decimali.

(Edit: Rimosso concetto stringa IValueConverter per mantenere il più pulito questione)

È stato utile?

Soluzione

I hate to answer my own question, and I think I was misleading in how I added a potential solution using a value converter to my original question - so sorry about that. The solution turned out to be simple. You pass the format string along with the binding.

        column.Binding.StringFormat = "0.00";

Here is the full solution

    public static DataGridTextColumn CreateFloatColumn(int index, string fieldName, string header, string description)
    {
        DataGridTextColumn column = new DataGridTextColumn();
        column.Header = header;
        column.HeaderStyle = BuildColumnHeaderStyle(description);
        column.Binding = new Binding("floatValuesList[" + index + "]");
        column.Binding.StringFormat = "0.00";
        column.CellStyle = BuildFloatCellStyle(fieldName, description);
        return column;
    }

Altri suggerimenti

You should be able to do: newBinding.ConverterParameter = "formatString";

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top