Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法以ListView Xamarin窗体显示数据

无法以ListView Xamarin窗体显示数据
EN

Stack Overflow用户
提问于 2021-02-19 03:58:18
回答 1查看 89关注 0票数 0

我试图在我的ListView中显示XamarinApp中的数据,我的问题是我不能显示数据。我做了所有的绑定,我不认为我在绑定列表视图方面犯了错误。

有人能帮忙吗?

下面是我的UrlBindingModel的样子:

代码语言:javascript
运行
AI代码解释
复制
 public class UrlBindingModel 
{
    public IList<Urls> UrlsList { get; set; }

    public UrlBindingModel() // In this constructor we add a few items
    {
        try
        {
            UrlsList = new List<Urls>
            {
                new Urls() { Name = "TestName", Url = "localhost" },
                new Urls() { Name = "TestName", Url = "localhost" },
                new Urls() { Name = "Test", Url = "Test" },
                new Urls() { Name = "Sas", Url = "Sas" }
            };
        }

        catch (Exception ex)
        {

        }

    }

    public class Urls
    {

        public string Name { get; set; }
        public string Url { get; set; }

    }


}

下面是我的Page.Xaml的样子:

代码语言:javascript
运行
AI代码解释
复制
    <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:models="clr-namespace:TestFormApp.Models;assembly=TestFormApp"
             xmlns:views="clr-namespace:TestFormApp.Views;assembly=TestFormApp"
             x:Class="TestFormApp.Pages.SettingsPage"
             Title="Settings">

    <ContentPage.BindingContext>
        <views:UrlBindingModel></views:UrlBindingModel>
    </ContentPage.BindingContext>

    <ContentPage.Content>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="40" />
                <RowDefinition Height="40" />
                <RowDefinition Height="40" />
                <RowDefinition Height="10" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Label Text="Urls" Grid.Row="0" FontAttributes="Bold" FontSize="Large" HorizontalOptions="CenterAndExpand"></Label>
            <StackLayout Grid.Row="1">
                <Button x:Name="btnUrlPopUp" Text="Add Url" Clicked="BtnUrlPopUp_OnClicked"></Button>
            </StackLayout>
            <Grid Grid.Row="2" VerticalOptions="CenterAndExpand" Margin="10" Padding="10">
                <Grid.RowDefinitions>
                    <RowDefinition Height="30" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="3*" />
                    <ColumnDefinition Width="2*" />
                    <ColumnDefinition Width="2.5*" />
                    <ColumnDefinition Width="1*" />
                    <ColumnDefinition Width="1.5*" />
                </Grid.ColumnDefinitions>
                <Label Text="Name" Grid.Column="0" Grid.Row="0" Style="{DynamicResource headerTablet}" />
                <Label Text=" Host Url" Grid.Column="1" Grid.Row="0" Style="{DynamicResource headerTablet}" />
                <Label Text="Edit" Grid.Column="2" Grid.Row="0" Style="{DynamicResource headerTablet}" />
                <Label Text="Delete" Grid.Column="3" Grid.Row="0" Style="{DynamicResource headerTablet}" />
                <!--The box view creates a line under labels-->
                <BoxView Grid.Row="3" HorizontalOptions="FillAndExpand"
                         VerticalOptions="Center" HeightRequest="2" BackgroundColor="DarkGray"></BoxView>
                <ListView IsPullToRefreshEnabled="True" x:Name="lstUrlList" Grid.Row="4" ItemsSource="{Binding UrlsList}" Margin="4">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <Grid VerticalOptions="CenterAndExpand" BackgroundColor="White" ColumnSpacing="0">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="40" />
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="3*" />
                                        <ColumnDefinition Width="2*" />
                                        <ColumnDefinition Width="3*" />
                                        <ColumnDefinition Width="1*" />
                                        <ColumnDefinition Width="1*" />
                                    </Grid.ColumnDefinitions>

                                    <Label Text="{Binding Name, Mode=TwoWay}" Grid.Column="0" Grid.Row="0" Style="{DynamicResource detailTablet}" />

                                    <Label Text="{Binding Url, Mode=TwoWay}" Grid.Column="1" Grid.Row="0" Style="{DynamicResource detailTablet}" />

                                </Grid>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </Grid>
        </Grid>
    </ContentPage.Content>
</ContentPage>

我错过了什么??

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 08:24:26

乍一看,您的视图模型没有实现INotifyPropertyChanged,因此不能通知您的xaml任何属性(包括一个用于itemssource的属性)都已更改。

1从BindableObject继承视图模型

代码语言:javascript
运行
AI代码解释
复制
public class UrlBindingModel : BindableObject

2将你的道具换为

代码语言:javascript
运行
AI代码解释
复制
        private IList<Urls> _urlsList;
        public IList<Urls> UrlsList
        {
            get { return _urlsList; }
            set
            {
                if (_IsProperty != value)
                {
                    _IsProperty = value;
                    OnPropertyChanged();
                }
            }
        }

请注意,任何在运行时将更改且不调用OnPropertyChanged()的属性,当其更改时,都不会将其更改通知您的UI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66277166

复制
相关文章
xamarin android listview的用法
listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣。原谅我的大小写吧.
全栈程序员站长
2022/09/15
9510
xamarin android listview的用法
窗体显示
这个是可以点击的 主要是没有那个事件绑定所以没有啥事只有点击之后啥都没有啦 我每一部分都用的一个主程序 所以看着会比较乱但是不影响复习 源代码奉上
用户8447427
2022/08/18
1.5K0
窗体显示
VB 子窗体被PictureBox控件挡住无法显示
   VB做机房收费系统的时候,用的MDI主窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了子窗体,但是却没有出现,后来才发现,子窗体被Picturebox控件给当在了后面。
令仔很忙
2018/09/14
1.5K0
Xamarin使用ListView开启分组视图Cell数据展示bug处理
问题描述 Xamarin使用IsGroupingEnabled="true"之后再Cell操作就会出现数据展示bug,数据不刷新的问题,如下图所示: 点击取消的是其他钢厂,但ViewCell展示的一直
磊哥
2018/05/08
6900
Xamarin使用ListView开启分组视图Cell数据展示bug处理
设置WPF窗体全屏显示:
//全屏代码: private void Window_Loaded(object sender, RoutedEventArgs e) { // 设置全屏 this.WindowState = System.Windows.WindowState.Normal; this.WindowStyle = System.Windows.WindowStyle.None; this.ResizeMode = System.Windows.ResizeMode.NoResize;
hbbliyong
2018/03/05
4K0
Android SimpleAdapter显示ListView、GridView
SimpleAdapter作为一个数据集,主要向ListView、GridView容器填充数据,总结了几种填充方式,原理很简单,直接看代码和效果图
阳光岛主
2019/02/19
6550
android读取sqlite数据库的数据并用listview显示
刚刚接触android,老师给了我了几个班级信息的excel,让我做一个考勤的系统出来,本篇仅记录了真机调试下,读取已有静态数据库并显示在listview中。
全栈程序员站长
2022/09/18
2.5K0
android读取sqlite数据库的数据并用listview显示
C# Xamarin移动开发项目实战篇
3.6、Android漂亮的Loading提示控件(ProgressDialog)
跟着阿笨一起玩NET
2018/09/20
10.1K3
C# Xamarin移动开发项目实战篇
6.listview显示不用条目
文件夹页面 布局只有一个listview,可以继承listactivity,这样少写一个布局文件 tool: * @param index 箱子的索引值 * @return * 对应的uri 或
六月的雨
2018/05/14
8440
golang版本sdl2显示窗体
go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。
福大大架构师每日一题
2023/06/08
3010
golang版本sdl2显示窗体
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
在做安卓实验时,用到了ListView来做表格显示数据。由于表头是使用xml布局文件动态实现的。造成了添加好组件后,无法正常显示的情况。浪费了我2小时的时间,终于利用歪门邪道解决了。
手撕代码八百里
2020/07/29
1.4K0
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
golang版本sdl2显示窗体
go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。
福大大架构师每日一题
2022/06/14
6770
golang版本sdl2显示窗体
winfrom向窗体中拖放图片并显示
首先要设置窗体的AllowDrop属性为true。然后在窗体的DragEnter事件中添加如下代码:调用自定义的显示图片的方法。
跟着阿笨一起玩NET
2018/09/19
9870
C# WPF MVVM模式下在主窗体显示子窗体并获取结果
在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以:
用户9127601
2021/11/01
1.9K0
c#子窗口与父窗口_主窗体控制子窗体的显示
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170914.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
2.7K0
点击加载更多

相似问题

无法以xamarin窗体显示图像

12

Xamarin窗体ListView文本未显示

34

ListView Itemsource没有显示对象Xamarin窗体

22

Xamarin窗体ListView for iOS:始终显示ScrollBar

11

Xamarin窗体以编程方式扩展listview高度

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档