منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف أستطيع أن أتوصل إلى الانديكس للصف والعامود داخل Grid ؟؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم جميعا ورحمة الله وبركاته.....
آه لمرارة الانتقال من لغة برمجية إلى أخرى ... ناهيك عن اختلاف المنصات وأنطمة التشغبل ... معانااااااااااة ... المهم 
أرجو منكم المساعدة ، حيث أنني قمت بعمل مشروع صغير بـ Xamarin 

وهو عبارة عن اتصال بقاعدة بيانات سيكول سيرفر ثم ملأ  Datatable بالبيانات ومن ثم عرض البيانات في Grid.. والتي تحتوي على Entries تمت اضافتهم برمجيا وليس في XAML ... هذا يعني أن Entries ليس لهم Names أو IDs مخصصة لكل واحد منهم .. حتى هذه اللحظة الأمر يسير على ما يرام ... ويتم استدعاء البيانات بشكل سليم
لكن وكما تعرفون بداخل Grid يوجد Rows and Columns واحتاج إلى جمع أو ضرب محتويات Entries  في نفس الصف أو جمع محتويات عامود من الأعمدة 
أنا لا أستطيع أن أتوصل إلى الانديكس للصف والعامود 
كيف أقوم بجمع خليتين بداخل الجريد لنفس الصف أو لعدة صفوف ؟
وهل الجريد تتناسب مع ذلك أم يجب علي اختيار أداة عرض أخرى

شكرا لكم جميعا على كل حال
وعليكم السلام ورحمة الله وبركاته، لحسن الحظ، يمكنك الوصول إلى محتويات صف أو عمود داخل GridView في Xamarin باستخدام الخاصية RowDefinitions و ColumnDefinitions. يمكنك تحديد الصف والعمود بالاستناد إلى الفهرس (الفهرس هو رقم الصف أو العمود بدايةً من 0) ومن ثم الوصول إلى العنصر في الصف أو العمود باستخدام خاصية Grid.Row و Grid.Column. على سبيل المثال، يمكنك الحصول على محتويات العنصر في الصف الأول والعمود الثاني من GridView كما يلي:

كود :
var row = 0;
var column = 1;

var element = myGridView.Children
   .Where(e => Grid.GetRow(e) == row && Grid.GetColumn(e) == column)
   .FirstOrDefault();

if (element is Entry entry)
{
   // تحصل هنا على محتوى ال Entry الذي يقع في الصف الأول والعمود الثاني
   var content = entry.Text;
}


وفيما يتعلق بسؤالك عن جمع القيم داخل GridView ، يمكنك تحقيق ذلك عن طريق الوصول إلى جميع العناصر في الصف أو العمود باستخدام الفهرس ثم جمع أو ضرب قيمهم. يمكنك استخدام مثل هذا الكود لجمع محتويات عمود معين:

كود :
var column = 1;
var rowStart = 0;
var rowEnd = myGridView.RowDefinitions.Count - 1;

var sum = 0;
for (var row = rowStart; row <= rowEnd; row++)
{
   var element = myGridView.Children
       .Where(e => Grid.GetRow(e) == row && Grid.GetColumn(e) == column)
       .FirstOrDefault();

   if (element is Entry entry && int.TryParse(entry.Text, out var value))
   {
       sum += value;
   }
}


GridView. يمكنك استخدام هذه الطريقة لجمع العناصر في صف معين أيضًا. أما بشأن سؤالك حول ما إذا كانت GridView مناسبة لهذا الغرض، فإنه يعتمد على متطلبات التصميم الخاصة بك. إذا كانت GridView

يمثل متطلبات التصميم الخاصة بك وتلبي احتياجاتك بشكل كافٍ، فمن الممكن استخدامها لعرض البيانات وجمعها. وإذا كنت ترغب في مزيد من التحكم في تخطيط العناصر وعمليات الجمع والحساب، فقد تحتاج إلى استخدام أدوات عرض أخرى مثل ListView أو TableView. أتمنى أن يساعدك هذا الرد ويحل مشكلتك، ولا تتردد في السؤال إذا كان لديك أي أسئلة أخرى.