0

私は xceed datagridcontrol を使用していますが、これは DataGrid に非常に似ていると思います。Business Object クラスの ObservableCollection を使用して、グリッドの行と列をロードしました。これまでのところ、BO のすべてのプロパティが自動的にグリッド列として変換され、すべての行が適切に表示されます。

一部の列を書式設定して、通貨形式で表示したいと考えています。これに関連するいくつかの質問と回答を読みましたが、それらはすべて、列とその stringFormat 属性へのバインディングを使用しています。XAML で列を宣言しているのではなく、代わりにグリッドが BO から自動的に読み取られるため、コード ビハインドからフォーマットを変更する方法を探しています。winform の DataGridView1.DefaultCellStyle.Format のようなもの。

ありがとう

編集:

わかりました...それが不可能な場合は、XAML ソリューションも歓迎します。

4

1 に答える 1

1

別の未回答の質問。すすり泣く。とにかく...検索と実験を数日行った後、データ テンプレートを作成し、 CurrencyConverter : IValueConverter クラスを定義しました。

    <local:CurrencyConverter x:Key="CC"/>
    <DataTemplate x:Key="CurrencyCellTemplate">
        <TextBlock Text="{Binding Converter={StaticResource CC}}"/>
    </DataTemplate>

そして、これでスタイルを設定します:

        foreach (int idx in moneyColumns) {
            var col = TheGrid.Columns[idx];
            col.CellHorizontalContentAlignment = HorizontalAlignment.Right;
            DataTemplate DT = FindResource("CurrencyCellTemplate") as DataTemplate;
            col.CellContentTemplate = DT;
        }

おそらく、この自己回答は将来誰かを助けるかもしれません.

于 2013-02-26T11:41:46.563 に答える