日安。
我正在尝试在Microsoft.Toolkit.Uwp.UI.Controls.DataGrid中显示来自System.Data.DataTable的数据。我通过CollectionViewSource将组件绑定到表。
在UWP下,不能使用Windows.UI.Xaml.Data.CollectionViewSource对象。
无法按System.Data.DataTable对象分配CollectionViewSource.Source。
尝试赋值时,抛出错误:
System.ArgumentException:‘值不在预期范围内。’
下面是一些示例代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
System.Data.DataSet northwindDataSet = new DataSet();
northwindDataSet.ReadXml(@"NorthwindDataSet.Xml");
System.Data.DataTable dataTable = northwindDataSet.Tables["Customers2"];
Windows.UI.Xaml.Data.CollectionViewSource viewSource = new CollectionViewSource();
viewSource.Source = dataTable;
}在WPF下,类似的代码工作正常,没有错误。
错误是什么。

发布于 2021-05-03 12:36:44
在UWP平台中,恐怕不能将viewSource.Source设置为DataTable。如果您想将DataTable填充到datagrid中,有关更多信息,请参阅此案例reply。
private ObservableCollection<object> collection = new ObservableCollection<object>();
public void FillDataGrid(DataTable table, DataGrid grid)
{
grid.Columns.Clear();
for (int i = 0; i < table.Columns.Count; i++)
{
grid.Columns.Add(new DataGridTextColumn()
{
Header = table.Columns[i].ColumnName,
Binding = new Binding { Path = new PropertyPath("[" + i.ToString() + "]") }
});
}
var collection = new ObservableCollection<object>();
foreach (DataRow row in table.Rows)
{
collection.Add(row.ItemArray);
}
grid.ItemsSource = collection;
}https://stackoverflow.com/questions/67344390
复制相似问题