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 MAUI
开发人员技术 | .NET | 其他
开发人员技术 | C#
开发人员技术 | C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
{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 个注释 无注释

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。