在Xamarin中动态添加入口控件

2024-02-28

我想获取XML 输入控制 from API,可用于JSON.

Entry 控件的所有属性均采用 JSON 格式。我想将它们添加到.xml页面并获取它们的值(当用户进入应用程序时)ViewModel(通过数据绑定)。

UPDATE

根据答案更新代码。

public partial class FormPage : ContentPage, IRootView
{
    public List<Form> forms { get; set; }

    public class RootObject
    {
        public bool success { get; set; }
        public Datum[] data { get; set; }
    }

    public class Datum
    {
        public Form[] form { get; set; }
    }

    public class Form
    {
        public string label { get; set; }
        public string name { get; set; }
        public string type { get; set; }
        public int max_length { get; set; }
        public bool required { get; set; }
    }

    public FormPage()
    {
        InitializeComponent();

        var json = @{};

        var list = JsonConvert.DeserializeObject<RootObject>(json);

        forms = new List<Form>();
        forms = list.data.FirstOrDefault().form.ToList();

        this.BindingContext = this;
    }
}

反序列化Json:安装Newtonsoft.Json来自 NuGet。

将json转换为类,然后获取json数据的列表。

在你的 VS 中,编辑>选择性粘贴>将 JSON 作为类粘贴

 public class Rootobject
{
    public bool success { get; set; }
    public Datum[] data { get; set; }
}

public class Datum
{
    public Form[] form { get; set; }
}

public class Form
{
    public string label { get; set; }
    public string name { get; set; }
    public string type { get; set; }
    public int max_length { get; set; }
    public bool required { get; set; }
}

反序列化以获取列表:

   var list = JsonConvert.DeserializeObject<Rootobject>(json);

使用StackLayout的Bindablelayout.ItemTemplate来设置Entry的模板:

Xaml:

 <StackLayout x:Name="DynamicEntry" BindableLayout.ItemsSource="{Binding forms}">
        <BindableLayout.ItemTemplate>
            <DataTemplate>
                <Entry Placeholder="{Binding label}" MaxLength="{Binding max_length}" />

            </DataTemplate>
        </BindableLayout.ItemTemplate>
    </StackLayout>

背后代码:

 public List<Form> forms { get; set; }
    public Page1()
    {
        InitializeComponent();

        var json = @"{
'success': 'true',
'data': [
    {
        'form': [
            {
                'label': 'Name',
                'name': 'name',
                'type': 'text',
                'max_length': '15',
                'required': 'true'
            },
            {
                'label': 'Email',
                'name': 'email',
                'type': 'email',
                'max_length': '30',
                'required': 'true'
            }
        ]
    }
]
}";
        var list = JsonConvert.DeserializeObject<Rootobject>(json);

        forms = new List<Form>();
        forms = list.data.FirstOrDefault().form.ToList();

        this.BindingContext = this;
    }

请注意,如果要设置不同类型的键盘,则需要将列表与键盘类进行转换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Xamarin中动态添加入口控件 的相关文章

  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • C++中的类要具备什么条件才能成为容器?

    我是 C 编程新手 偶然发现了这个术语containers举例如下vector deque map etc 一个企业的最低要求应该是什么class应该满足被称为container in C 我将从 范围 这个概念开始 Range 只有两个方
  • JSONP 使用 JQuery 从 HTTPS 协议获取 JSON

    我正在尝试获取从 https 安全站点发送的 JSON 客户端希望不要使用任何服务器端语言 全部都是 Javascript 我读到 当使用 Jquery 中的 ajax 函数时 我必须使用 JSONP 才能从安全站点加载 JSON 我的第一
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • “没有合适的默认构造函数可用”——为什么会调用默认构造函数?

    我已经查看了与此相关的其他一些问题 但我不明白为什么在我的情况下甚至应该调用默认构造函数 我可以只提供一个默认构造函数 但我想了解它为什么这样做以及它会产生什么影响 error C2512 CubeGeometry no appropria
  • 编写具有多种类型的泛型扩展方法时的类型推断问题

    我正在为 IEnumerable 编写一个通用扩展方法 用于将对象列表映射到另一个映射对象列表 这就是我希望该方法的工作方式 IList
  • 在 C 语言中替换宏内的宏

    我正在尝试使代码部分可重用 我下面的评论片段没有达到我想要的效果 define NAME ABC define LOG SIZE NAME LEN 我想LOG SIZE决心ABC LEN 我尝试过使用 但没能让它发挥作用 LOG SIZE在
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 在 mvc4 中创建通用 mvc 视图

    我以前也提过类似的问题 没有得到答案 如何创建一个通用的 mvc4 视图 该视图可以显示传递给它的模型列表或单个模型 模型可以是个人 组织或团体 无论传递给它的是什么 如果您正在寻找类似的东西 model MyViewModel
  • C++ 模板可以提供 N 个给定类的公共父类吗?

    我正在寻找一个 C 模板 它可以找到一组给定类的共同父级 例如 class Animal class Mammal public Animal class Fish public Animal class Cat public Mammal
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 初始化列表在 VC10 中不起作用

    我在 VC 2010 中编写了这个程序 class class1 public class1 initializer list
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • Unity,c++ 本机插件字节数组不匹配

    在我的 C 本机插件中 我有一个调用 vector
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到
  • 如何在c中断言两个类型相等?

    在 C 中如何断言两种类型相等 在 C 中 我会使用 std is same 但搜索 StackOverflow 和其他地方似乎只能给出 C 和 C 的结果 在C中没有办法做到这一点吗 请注意 这不是询问变量是否具有某种类型 而是询问两个类

随机推荐

  • Flutter:ClipRRect 与带有 BoxDecoration 的容器

    我知道 ClipRRect 有其他选项 例如自定义剪辑器 但如果我只需要一个简单的边界半径 性能上有什么区别吗 哪一款更值得推荐呢 如果您的目标是创建圆形边框 则必须仅在最后一种情况下使用剪裁器 此时容器可能无济于事 例如 图像可以在圆形边
  • Java servlet - 会话清理 (HttpServletRequest)

    关于 java servlet 的一般问题以及处理请求的最佳方法 如果我从远程服务器请求中调用 doGet 方法 protected void doGet HttpServletRequest request HttpServletResp
  • 学习 Javascript 与 jQuery

    我拿到了 Wrox Beginning JavaScript 3rd Edition 并想从头开始学习它 然后我的老板走过来说 何必呢 学习 jQuery 尽管我是一个新手 对 ASP net vb net 一些 C 和基本 HTML 的了
  • 如何在CRM 2011中从多对多实体关系中创建和删除数据?

    如何在crm 2011中从多对多实体关系中创建和删除数据 Code QueryExpression qry new QueryExpression qry EntityName entity1 entity2 qry ColumnSet n
  • 更新模型时如何更新counter_cache?

    我有一个简单的关系 class Item belongs to container counter cache gt true end class Container has many items end 假设我有两个容器 我创建一个项目并
  • x86 asm 中 NOT 指令的简单示例

    有人能解释一下 x86 汇编器中 NOT 指令的具体作用吗 在我所知道的编程语言中 NOT 用于检查特定状态是否不正确 例如 if Isset var 但在汇编器中 运算符似乎做了其他事情 我不明白操作数到底是做什么用的 有人可以用一个简单
  • 错误 TS1127:在 Angular 7 中运行 Karma 测试时出现无效字符

    我收到错误error TS1127 Invalid character在 Visual Studio Code 终端中 为 Angular 7 应用运行 Karma 测试时 命令行版本 7 3 9 I have 一份 Karma 测试规范在
  • Scapy:处理部分 TLS 段

    我正在尝试使用 Scapy 从 pcap 中提取 TLS 元数据 我能够成功解析数据包和单个消息 例如 client hello server hello 等及其字段 我遇到的问题是当 TLS 记录分布在多个 TCP 数据包 段时 这种情况
  • boost:序列化重构(加载)

    我正在使用 boost serialization 将数据结构保存到文件中 实际数据是类和子类的指针向量 然而 被序列化的类的构造函数将另一个实例化的类 Agent 作为参数 该类 Agent 是控制与模拟 API webots 通信的对象
  • 使用 linQ 和 lambda 表达式删除记录

    我想使用 linq lambda 表达式删除 sql 数据库的记录 我应该怎么办 这里 student 是我的表 db 是 edmx 文件的对象 public bool DeleteRecord int caurseID studentEn
  • Java - 如何使非字符串对象的 JComboBox 显示字符串名称?

    我想做JComboBox元件展示String名称 而不是参考文献 但是 我不知道这是如何做到的 下面显示了我的代码 public class Properties extends JPanel implements ItemListener
  • 为什么在运行单元测试时,django 设置会导入两次,并且测试数据库会创建两次?

    姜戈 1 3 皮查姆 1 5 3 我正在为使用 GEOS 保存 Point 对象的 Django 应用程序编写单元测试 对于本地测试 我按照 GeoDjango 文档遵循了自定义 Spatialite 后端的每一步 每当我尝试使用 Poin
  • 如何检查json对象是否为数组

    我是 python 新手 在将 json arraylist 对象从 java 发送到 python 时 我遇到了这个问题 从 java 发送 json 对象时 arraylist 的 json 结构是 firstObject firstV
  • Magento V1.7 网格视图 - 添加制造商属性以查看

    On 这一页 http www foxtrotgear com index php tactical gear equipment html mode grid我想在商品名称的正下方添加制造商名称 但似乎无法使其正常工作 尝试了很多建议 但
  • 阿格达。冒号之前/之后的参数

    定义数据类型时 我可以在冒号之前 传递 一些参数 data Image A B Set f A B B Set where im f A B x A Image f f x 但出于未知原因 我似乎无法在函数声明中执行此操作 exIm A B
  • MySQL:在同一个 MySql 实例上克隆 MySQL 数据库

    我想编写一个复制当前数据库的脚本sitedb1 to sitedb2在同一个 mysql 数据库实例上 我知道我可以将 sitedb1 转储到 sql 脚本 mysqldump u root p sitedb1 gt db name sql
  • 文本渲染器。如何使用尾省略号渲染多行文本?

    我如何呈现这样的文本 简单列表视图 尝试这样的代码不会出现省略号 TextRenderer DrawText listGraphics anItem Text GetItemFont anItem textRec Color FromKno
  • Java代码中如何标记忽略返回值?

    C 约定标记该函数仅因副作用而调用 并且在这个特定的调用中我们对返回值不感兴趣 void getSomethingAndDoAction Java中有类似的东西吗 The 容易出错的项目 https errorprone info has
  • 将音频输出重定向到手机扬声器,将麦克风输入重定向到耳机

    是否可以将音频输出重定向到手机扬声器并仍然使用麦克风耳机输入 如果我将音频路由重定向到手机扬声器而不是耳机 它也会重定向麦克风 这是有道理的 但我似乎不能仅仅重定向麦克风输入 有任何想法吗 这是我用来将音频重定向到扬声器的代码 UInt32
  • 在Xamarin中动态添加入口控件

    我想获取XML 输入控制 from API 可用于JSON Entry 控件的所有属性均采用 JSON 格式 我想将它们添加到 xml页面并获取它们的值 当用户进入应用程序时 ViewModel 通过数据绑定 UPDATE 根据答案更新代码