我正在使用Xamarin.Forms.DataGrid數據網格nuget包。當我在Android手機上運行應用程序時,它會顯示網格和數據。但是,當我嘗試在UWP上運行完全相同的代碼時,它會給我以下例外。數據網格Xamarin UWP問題 - HRESULT E_FAIL已從調用COM組件返回
錯誤消息:
消息「System.Runtime.InteropServices.COMException:錯誤HRESULT E_FAIL已經從對COM組件的呼叫在Windows.UI.Xaml.UIElement返回\ r \ n。在Xamarin.Forms.Platform.UWP.VisualElementRenderer中測量(大小availableSize)\ r \ n
2.MeasureOverride(Size availableSize)\r\n at Windows.UI.Xaml.UIElement.Measure(Size availableSize)\r\n at Xamarin.Forms.Platform.UWP.VisualElementRenderer
2.MeasureOverride(Size availableSize)\ r \ n at Windows.UI.Xaml.UIElement.Measure(Size availableSize)\ r \ n at Xamarin.Forms.Plat「字符串。
它會顯示一個空的網格和列只是UWP很好,如果我註釋掉
dgReceipts.ItemsSource = tempList;
,所以我不認爲它可能是一個XAML問題。被用於測試
設備是三星Galaxy S6的Android 7.0 &的Lumia 640
任何幫助表示讚賞
XAML代碼
<dg:DataGrid x:Name="dgReceipts" RowHeight="70" HeaderHeight="50" BorderColor="#CCCCCC" HeaderBackground="#E0E6F8">
<dg:DataGrid.Columns>
<dg:DataGridColumn Title="ID" Width="1*">
<dg:DataGridColumn.CellTemplate>
<DataTemplate>
<ContentView>
<Label Text="{Binding Apar_ID}" VerticalOptions="Center"
HorizontalOptions="Center"/>
</ContentView>
</DataTemplate>
</dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>
</dg:DataGrid.Columns>
<dg:DataGrid.RowsBackgroundColorPalette>
<dg:PaletteCollection>
<Color>#F2F2F2</Color>
<Color>#FFFFFF</Color>
</dg:PaletteCollection>
</dg:DataGrid.RowsBackgroundColorPalette>
</dg:DataGrid>
這是我得到的數據
名單//Gets transactions for reports page
public async Task<List<x_Transactions>> GetReportTransactions()
{
List<x_Transactions> transactions = await database.Table<x_Transactions>
().ToListAsync();
return transactions;
}
而且它被設置爲dg i temssource
public async Task FillGrid()
{
List<x_Transactions> tempList;
newList = await App.Database.GetReportTransactions();
dgReceipts.ItemsSource = tempList;
}
我用'dgReceipts.ItemsSource = new List- ()'設置了DataGrid的項目源,它工作的很好。你有沒有試過打印'tempList'? –
我可以看到正確的數據量正在調試模式下返回,並且它也顯示了Android中的正確數據。 –
請嘗試清理解決方案並卸載應用程序,然後重新生成項目。 –