لماذا لا يمكنني ربط DataGrid WPFToolkit ItemSsource إلى DataTable و؟
-
20-08-2019 - |
سؤال
في عنصر تحكم 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
وهذا سوف يساعد.