微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ObservableCollection 未在 ListView 上显示任何项目

如何解决ObservableCollection 未在 ListView 上显示任何项目

我正在尝试在 ObservableCollection ListView 上绑定 ItemsSource 但它没有向我显示任何内容,尝试在 xaml 上的代码内部绑定..

    public partial class ReadPage : ContentPage
    {
        private CarregarClientes _cclientes = new CarregarClientes();
        private MysqLCon _db = new MysqLCon();
        private MysqLConOverloads _over = new MysqLConOverloads();
        private MysqLiteCon _dbsqliteCon = new MysqLiteCon();
        private MysqLiteConOverloads _oversqlite = new MysqLiteConOverloads();

        //MY OBSERVABLECOLLECTION DEFinitioN -----------------------------
        public ObservableCollection<Clientes> _ClientesList { get; set; }

        private string _tabela = "Clientes";
        public ReadPage()
        {
            InitializeComponent();
            backBtn.Clicked += async (s,o) => await Navigation.PopModalAsync();
            //Method used to populate the ObservableCollection (_ClientesList);
            PopularObservableCollection();
        }

我在 ObservableCollection 类中定义 ReadPage,然后使用名为 PopularObservableCollection方法填充它。

        public void PopularObservableCollection()
        {
            _ClientesList = new ObservableCollection<Clientes>();
            int quantidadeDados = _cclientes.CNumeroItems() -1;
            List<string> id = _cclientes.Cid();
            List<string> debito =  _cclientes.CDebito();
            List<string> endereco = _cclientes.CEndereco();
            List<string> nome = _cclientes.CNome();
            List<string> observacao = _cclientes.CObservacao();
            List<string> saldo = _cclientes.CSaldo();
            List<string> telefone = _cclientes.CTelefone();
            
            for (int i = 0; i <= quantidadeDados; i++)
            {
                _ClientesList.Add(new Clientes
                {
                    id = id[i],Debito = debito[i],Endereco = endereco[i],Nome = nome[i],Observacao = observacao[i],Saldo = saldo[i],Telefone = telefone[i]
                });
            }
        }

Clientes.cs:

    public class Clientes : BindableObject
    {
        public string id { get; set; }
        public string Nome { get; set; }
        public string Endereco { get; set; }
        public string Telefone { get; set; }
        public string Debito { get; set; }
        public string Saldo { get; set; }
        public string Observacao { get; set; }
    }

My list view screenshot,nothing inside it

XAML:

             <ListView
                BindingContext="{Binding Source={x:Reference MyPage},Path=.}"
                x:Name="readListView" 
                BackgroundColor="PaleVioletRed"
                HasUnevenRows="True"
                CachingStrategy="RecycleElement"
                HorizontalOptions="FillAndExpand" 
                ItemsSource="{Binding _ClientesList}"
                VerticalOptions="FillAndExpand"
                ItemTapped="ReadListView_OnItemTapped">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <Grid>
                                <Label Text="Id:" Grid.Row="0"/>
                                <Label Text="{Binding id}" Grid.Row="0" Margin="10,0"/>
                                <Label Text="{Binding Nome}" Grid.Row="1" />
                            </Grid>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。