net maui中的显示问题windows下正常显示android下显示空白

张中伟 80 信誉分
2025-02-19T08:52:33.5033333+00:00

我绑定数据到listview上,windows下正常显示数据,android下显示为空白,不知道什么原因。代码如下:数据是正常绑定的。

ObservableCollection<cls1> oc1 = new();//这个是全局变量,

this.lvData.HorizontalOptions = LayoutOptions.Fill;

        this.lvData.VerticalOptions = LayoutOptions.Fill;

        #region DataTemplate 

        DataTemplate dTemp = new(() =>

{

#region

HorizontalStackLayout dataLayout = new HorizontalStackLayout();

Entry ent1 = new Entry() { IsReadOnly = false, WidthRequest = 100, }; ent1.SetBinding(Entry.TextProperty, "review_dt");

dataLayout.Children.Add(ent1);

Entry ent2 = new Entry() { IsReadOnly = false, WidthRequest = 100, }; ent2.SetBinding(Entry.TextProperty, "order_count");

dataLayout.Children.Add(ent2);

ViewCell myVC = new();

myVC.View = dataLayout;

return myVC;

#endregion

});

        this.lvData.ItemTemplate = dTemp;

    this.lvData.ItemsSource = oc1;
.NET
.NET
基于 .NET 软件框架的 Microsoft 技术。
94 个问题
.NET MAUI
.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
137 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
223 个问题
{count} 票

4 个答案

排序依据: 非常有帮助
  1. 张中伟 80 信誉分
    2025-02-21T08:03:01.66+00:00

    public class cls1

    {

     public string col1{ set; get; } = "";
    
       public string col2{ set; get; } = ""; 
    

    }

    this.dgData.Columns.Add(new()

    {

    Title = "列1",
    
    SortingEnabled = true,
    
    PropertyName = "col1",
    
    Width = 100
    

    });

    this.dgData.Columns.Add(new()

    {

    Title = "列2",
    
    SortingEnabled = true,
    
    PropertyName = "col2",
    
    Width = 100
    

    });

    ObservableCollection<cls1> oc1 = new();
    

    oc1.Add(new(){});/这里直接加数据

    照你的方法我把LISTVIEW换在DATAGRID。两个结果 都一样。界面一片空白。占用了位置。

    标题头正常显示。WINDOWS下一切正常。

    我传不了图片上来。

    this.dgData.ItemsSource = oc1;

    0 个注释 无注释

  2. 张中伟 80 信誉分
    2025-02-21T08:21:31.9266667+00:00

    其它就是个类。数据源绑定上去就可以了。WINDOWS下正常。ANDROID显示空白。 ObservableCollection<cls1> oc1 = new();

    public class cls1

    {

      public string col1 { set; get; } = ""; 
    
    public string col2 { set; get; } = ""; 
    

    }

    //this.lvData.ItemsSource = oc1;

    this.dgData.ItemsSource = oc1;

    你让我把LISTVIEW换DATAGRID了。所以绑定是没有变的。显示是一样的效果。

    0 个注释 无注释

  3. 张中伟 80 信誉分
    2025-02-21T09:10:11.2533333+00:00

    我又测试了,直接用XAML显示数据,不用代码动态创建。但是效果一样。有标题,有数据高度。但无内容。 <dg:DataGrid x:Name="dgData">

      <dg:DataGrid.Columns>
    
          <dg:DataGridColumn PropertyName="review_dt" Width="100" Title="标题"></dg:DataGridColumn>
    
      </dg:DataGrid.Columns>
    

    </dg:DataGrid>

    0 个注释 无注释

  4. 张中伟 80 信誉分
    2025-02-22T05:36:11.3333333+00:00

    找到问题原因了,不过没有好的解决办法。

    就是SCROLLVIEW如果只要求显示个水平条,那么内容宽度不设置全部变为0了。所以看不见。WINDOWS又正常。没有自动宽度的, <ScrollView Grid.Row="2" Orientation="Horizontal">就这个原因。冲突了。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。