データグリッドビュー:制限されたデータを実際に変更せずに値をフォーマットしますか?

StackOverflow https://stackoverflow.com/questions/3439600

質問

ウェブで検索しましたが、答えが見つかりませんでした。

BindingSource が境界付けされた DataGridView があり、これにはカスタム クラスのオブジェクトのリストがあります。クラスのフィールドの中には、次を使用して表示したい文字列フィールドがあります。

Path.GetFileName();

ファイルパス全体が含まれており、ファイルの名前だけを表示し、ファイルパス(つまり、境界付きデータをそのままの状態で)を境界付きオブジェクトに保持したいからです。

これを行う方法(フォーマット、テンプレート、スタイルなど)はありますか?Cell の Value フィールドを変更すると、オブジェクトの値も変更されるためです (これはロジックです)。

よろしくお願いします

役に立ちましたか?

解決

使用 DataGridView.CellFormatting DataGridViewの上のイベント。これには、あなたの現在のセルに関する情報をA DataGridViewCellFormattingEventArgs のオブジェクトを提供します行と列とフォーマットされていない値。あなたはtrueにFormattingAppliedフォーマットされた値とセットにValueプロパティを更新し、DataGridViewのは、その値をレンダリングします。

このような何かます:

private void dataGridView1_CellFormatting(object sender, 
    DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0) // Check for the column you want
    {
        e.Value = Path.GetFileName(e.Value.ToString());
        e.FormattingApplied = true;
    }
}

他のヒント

Binding クラスには Format() そして Parse() イベント ハンドラーでは、データを両方の方法でフォーマットする方法を定義できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top