سؤال

لقد كنت أبحث عبر الويب لكنني لم أتمكن من العثور على إجابة.

لدي 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;
    }
}

نصائح أخرى

ال Binding الفصل لديه Format() و Parse() معالج الأحداث حيث يمكنك تحديد كيفية تنسيق البيانات في كلا الاتجاهين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top