2016-06-27 17 views
0

私はWPF DataGridを使用して、SQL Server Viewからのデータを表示します。私はちょうどItemSourceを提供して、列を自動生成し、データを表示します。実行時にWPF DataGridの10進形式を変更します

数値の列の場合、表示する小数点以下の桁数を変更できるようにする必要があります。

深い検索の結果、AutoGeneratingColumnイベントハンドラにStringFormatを設定することが唯一の解決策であることが判明しました。

実行時にStringFormatを変更する必要があります。あなたはそれを手伝ってもらえますか?

+0

あなたは、コンバータを試すことができます。 –

+0

それには単純な解決策があるのだろうかと思います。コンバータは人工的なようです。 –

+0

データが格納されているPOCOのフィールドにInotifyPropertyChangedを実装して、コードビハインドまたはビューモデルの値を変更することができます。 TwoWayとしてxamlのバインディングをマークするのを忘れてはいけません。いずれにしても、@Ayyappanが正しく、ValueConverterでこれがうまくいくと思います。 – ssanga

答えて

1

私は、自動生成されたバインディングを置き換え、コンバータを使用せずにオンザフライでフォーマットを追加する方法を考え出しました。現在選択しているセルの列のこのコードセットの形式は

DataGrid dg; // Your DataGrid 
var column = (DataGridTextColumn)dg.CurrentCell.Column; // Selected cell's column 
var format = column.Binding.StringFormat; 
var bind = new Binding(column.Header.ToString()); // Bind to the same column of underlying Source 
bind.Mode = BindingMode.OneWay; 
bind.StringFormat = "F2"; // Two decimal places, add your code here 
column.Binding = bind;// Set new binding 
関連する問題