سؤال

في عنصر تحكم Telerik، وكنت قادرا على ربط DataTable مباشرة إلى ItemSource، ولكن عندما تحولت إلى WPFToolkit Datagrid كود بلاكس:

<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;

وأحصل على هذا الخطأ:

Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.

وكيف يمكنني ربط DataTable إلى theWPFToolkit DataGrid؟

هل كانت مفيدة؟

المحلول

وسيكون لديك لمشروع DataTable وبك إلى شيء ينفذ IEnumerable لأن ذلك هو WAHT يتوقع في DataGrid. الشبكة هي تنفيذ مختلف للنسخة Telerik لذلك من الصعب أن نتوقع نفس الوظائف من كليهما.

نصائح أخرى

وأجد أسهل طريقة هي:

myDataGrid.ItemsSource = myDataTable.DefaultView;

ولأن طريقة_العرض_الافتراضية تنفذ IEnumerable

وستضاف

وأفترض الدعم لهذا في المستقبل، ولكن الآن يمكنك استخدام تنفيذ IListSource على DataTable. استدعاء الأسلوب GetList() واستخدام ذلك كمصدر بيانات. انها تطبيق واجهة واضحة لذلك ستحتاج للادلاء:

var data = (myDataTable as IListSource).GetList();

في مثل هذه الحالات I ربط ItemsSource إلى DataContex في XAML أي

ItemsSource={Binding} 

وبعد ذلك في codebehind أفعل

theGrid.DataContext = dt

وهذا سوف يساعد.

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