wpf tips- The DataGrid - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم البرمجة بتقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=86) +--- الموضوع : wpf tips- The DataGrid (/showthread.php?tid=5729) |
wpf tips- The DataGrid - RaggiTech - 15-10-12 كاتب الموضوع : !TheCodeOfSilence
بسم الله الرحمن الرحيم بعد انقطاع لفتره طويله اعود اليكم لنتحدث عن wpf data grid عند بداية التعامل مع datagrid فانك تلاحظ انها مختلفة كثيرا عن الموجودة سابقا وهناك الكثير من العناصر غير موجود ولكن افضل طريقة للتعامل معها هي عدم التعامل معها مطلقا ولكن اذا اردت ان تتعامل معها بالطرقة العادية فاليك هذه class والتى تعمل بطريقة extension methods http://code.google.com/p/artur02/sou...aGridHelper.cs اما اذا اردت التعامل معها بالطريقة الاخرى وهي اسهل بكثير صدقوني فيمكنك متابعة الموضوع تذكرو اننا قلنا اننا لن نتعامل معها مباشرة اولا لنفترض ان لدينا قاعدة بيانات تحتوي على جدولين احدهما لاسماء العملاء وبياناتهم والاخر لمشتريات هولاء العملاء كود : CREATE TABLE [dbo].[cust_data]( كما ان لدينا textbox بحنوى على اجمالي قيمة المشتريات سنقوم باستخدام linq للربط مع قاعدة البيانات ولكن ولا علينا تجهيز datagrid اولا نقوم بعمل class يحتوي عل بيانات العملاء واخر يحتوى على بيانات المشتريات بهذه الطريقة كود : public class CustData كود : AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" كود : <DataGrid.Columns><DataGrid.Columns> كود : <DataGrid.Columns> <DataGrid.Columns> فى الجريد الثانية قمنا بعمل format للسعر من خلال binding الان كيف نقوم باضافة البيانات سنقوم في الواقع بعمل list من الclass الموجودة لعرضة في datagrid كود : CustData_DCDataContext CData = new CustData_DCDataContext(); اذا كبف نضيف البيانات في الجريد الثانية بكل بساطة نحن قمنا باحضار البيانات المتبقى فقط هو ربطها الجميل هنا ان كل سطر موجود فى الجريد هو فى الواقع class التي قمنا بتعريفها و بالتالي يمكنك تحويل هذا السطر الى هذه ال class والتعامل مع الclass مثلا في الجريد الاولى لا يوجد عمود لعرض كود العميل ولكن الكود موجود بالفعل ويمكننا عرضه ببساطة بتحول السطر الى ال class بهذة الطريقة كود : CustData Cust = (CustData)dataGrid1.SelectedItem; كود : CustData Cust = (CustData)dataGrid1.SelectedItem; كود : decimal TotalVal =Cust.CustPurchase.Sum(S=>S.ItemPrice); |