DataGridView: تنسيق القيم دون تغيير البيانات المحددة فعليًا؟
-
27-09-2019 - |
سؤال
لقد كنت أبحث عبر الويب لكنني لم أتمكن من العثور على إجابة.
لدي DataGridView مع Bindingsource المحدودة ، والتي تحتوي على قائمة من كائنات فئة مخصصة. من بين حقول الفصل ، لدي حقل سلسلة أريد أن أعرضه باستخدام
Path.GetFileName();
لأنه يحتوي على FilePath بالكامل وما أريده هو إظهار اسم الملف فقط ولكن الحفاظ على filepath (أي ، البيانات المحدودة سليمة) في الكائن المحدد.
هل هناك أي طريقة للقيام بذلك (التنسيق ، القالب ، الأنماط ، ...)؟ لأنه في أي وقت أقوم فيه بتغيير حقل القيمة للخلية ، فإنه يغير قيمة الكائن (وهو منطق).
شكرا كثيرا مسبقا
المحلول
استخدم ال datagridview.cellformatting حدث على DataGridView. هذا سوف يعطيك DataGridViewCellFormattingEventArgs كائن يحتوي على معلومات حول الخلية الحالية ، بما في ذلك الصف والعمود والقيمة غير المخصصة. يمكنك تحديث خاصية القيمة إلى القيمة المنسقة وتعيين التنسيق على True ، وسوف يقدم 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;
}
}