数据网格Xamarin UWP问题 - HRESULT E_FAIL已从调用COM组件返回

时间:2017-06-13 15:58:23

标签: c# android uwp xamarin.forms xamarin.uwp

我正在使用Xamarin.Forms.DataGrid数据网格nuget包。当我在Android手机上运行应用程序时,它将显示网格和数据。但是,当我尝试在UWP上运行完全相同的代码时,它会给我以下异常。

错误讯息:

  

消息“System.Runtime.InteropServices.COMException:错误HRESULT E_FAIL已从调用COM组件返回。\ r \ n在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.Platform.UWP.VisualElementRenderer 2.MeasureOverride(Size availableSize)\ r \ n在Windows.UI.Xaml.UIElement.Measure(Size availableSize)\ r \ n at Xamarin.Forms.Plat“字符串。

如果我注释掉

,它将在UWP中显示空格和列

dgReceipts.ItemsSource = tempList;

所以我不相信它可能是一个XAML问题。

用于测试的设备是Samsung 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 itemssource

的位置
public async Task FillGrid()
{
    List<x_Transactions> tempList;
    newList = await App.Database.GetReportTransactions();
    dgReceipts.ItemsSource = tempList;     
}

1 个答案:

答案 0 :(得分:0)

您无法在Xamarin.UWP平台中使用嵌套滚动。 DataGrid组件内部使用ListView。它不能有ScrollView父。