Frage

Ich kann nicht herausfinden, wie der Formatparameter zur folgenden DataGrid -Spalte hinzugefügt wird. Ich muss die Zahl mit zwei Dezimalpunkten zeigen.

Ich habe ein Silverlight Datagrid, das ich dynamisch Spalten hinzufüge. Ich erstelle die Spalte und wende eine dynamische Bindung an (von denen ich weiß, dass sie funktioniert)

    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;
    }

Jetzt muss ich auch den Wert formatieren. In diesem Fall wird ein Schwimmerwert angezeigt. Wie wende ich die Formatierung auf die Bindung an? Zu diesem Zeitpunkt möchte ich nur die Anzahl und zwei Dezimalpunkte, die zu zeigen sind, aber ich möchte, dass es ein wenig flexibel ist und mich eine variable Anzahl von Dezimalpunkten zeigen lassen.

(Bearbeiten: Entfernte String IvalueConverter -Konzept, um den Frage sauberer zu halten)

War es hilfreich?

Lösung

Ich hasse es, meine eigene Frage zu beantworten, und ich glaube, ich habe irreführend darin, wie ich eine potenzielle Lösung mit einem Wertkonverter zu meiner ursprünglichen Frage hinzugefügt habe - tut mir so leid. Die Lösung stellte sich als einfach heraus. Sie passieren die Formatzeichenfolge zusammen mit der Bindung.

        column.Binding.StringFormat = "0.00";

Hier ist die volle Lösung

    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;
    }

Andere Tipps

Sie sollten in der Lage sein: newBinding.ConverterParameter = "formatString";

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top