2017-06-13 6 views
0

Xamarin.Forms.DataGridデータグリッドのnugetパッケージを使用しています。 Androidの携帯電話でアプリケーションを実行すると、グリッドとデータがうまく表示されます。しかし、UWPで全く同じコードを実行しようとすると、次の例外が発生します。データグリッドXamarin UWPの問題 - COMコンポーネントの呼び出しからHRESULT E_FAILが返されました

エラーメッセージ:

メッセージ「System.Runtime.InteropServices.COMException:エラーHRESULT E_FAILはCOMコンポーネントへの呼び出しから返された\ Rの\ nをWindows.UI.Xaml.UIElementで。 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でMeasure(Size availableSize)\ r \ n 2.MeasureOverride(Size availableSize)\ r \ n Windows.UI.Xaml.UIElement.Measure(Size availableSize)\ r \ n at Xamarin.Forms.Plat "文字列。

私は

dgReceipts.ItemsSource = tempList;

をコメントアウト場合はので、私はそれがXAMLの問題である可能性があり信じていませんUWPでうまく空のグリッドと列が表示されます。テストのために使用されている

デバイスは、サムスンギャラクシーS6あるアンドロイド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;  
} 
+0

'DataGrid'のアイテムソースを' dgReceipts.ItemsSource = new List () 'に設定しました。うまくいきます。 'tempList'を印刷しようとしましたか? –

+0

私は正しい量のデータがデバッグモードで返されていることを確認することができ、実際にはAndroidにも正しいデータが表示されています。 –

+0

解決方法をクリーンアップし、アプリケーションをアンインストールしてから、プロジェクトを再構築してください。 –

答えて

0

あなたはXamarin.UWPプラットフォームでネストされたスクロールを使用することはできません。 DataGridコンポーネントは内部にListViewを使用します。それはScrollView親を持つことはできません。

関連する問題