バインディングを使用してコードのdatagrid列をフォーマットする方法
-
26-10-2019 - |
質問
フォーマットパラメーターを次のDatagrid列に追加する方法を理解できません。 2つの小数点で数値を表示する必要があります。
動的に列を追加するSilverlight Datagridがあります。私は列を作成し、動的バインディングを適用します(私はそれを知っています)
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;
}
また、値をフォーマットする必要があります。この場合、それは表示されているフロート値です。バインディングにフォーマットを適用するにはどうすればよいですか?この時点で、私が望むのは、表示する数と2つの小数点だけですが、少し柔軟になり、さまざまな数の小数点を見せてほしいと思います。
(編集:質問をきれいに保つために弦楽装置の概念を削除しました)
解決
私は自分の質問に答えるのが嫌いであり、元の質問にバリューコンバーターを使用して潜在的なソリューションを追加した方法に誤解を招いていたと思います。ソリューションはシンプルであることが判明しました。バインディングとともにフォーマット文字列を渡します。
column.Binding.StringFormat = "0.00";
これが完全な解決策です
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;
}
他のヒント
あなたはできるはずです: newBinding.ConverterParameter = "formatString";
所属していません StackOverflow