如何定义可从 Xaml 访问的构造函数参数

2023-12-10

Xamarin 的ListView定义一个 1 参数构造函数如下:

public ListView([Parameter("CachingStrategy")] ListViewCachingStrategy cachingStrategy)

因此,CachingStrategy可以在Xaml中使用:

<ListView CachingStrategy="RecycleElement" .../>

我想知道我怎样才能做同样的事情。以下代码无法编译,因为ParameterAttribute是 Xamarin.Forms 的内部:

public ItemListControl([Parameter("IsReadOnly")] bool isReadOnly)

我抄了课ParameterAttribute来自 Xamarin.Forms 和上面的编译,但对 Xaml 处理没有影响。这是类,供参考:

[AttributeUsage(AttributeTargets.Parameter)]
internal sealed class ParameterAttribute : Attribute
{
    public ParameterAttribute(string name)
    {
        Name = name;
    }

    public string Name { get; }
}

我有什么遗漏的吗?


为了让事情变得更简单,我建议创建一个BindableProperty for IsReadOnly。但你可以随时使用x:Arguments将参数传递给构造函数:

<local:ItemListControl ...>
    <x:Arguments>
        <x:Boolean>true</x:Boolean>
    </x:Arguments>
</local:ItemListControl>

EDIT - 1

您可以使用一种技巧 - (我不推荐,因为这可能会随时更新在 XAMLC 编译中) - 但您可以确保在定义参数属性时保持命名空间与内部使用的命名空间相同。

namespace Xamarin.Forms
{
    [AttributeUsage(AttributeTargets.Parameter)]
    internal sealed class ParameterAttribute : Attribute
    {
        public ParameterAttribute(string name)
        {
            Name = name;
        }

        public string Name { get; }
    }
}

XAML 的用法如下:

<local:ItemListControl IsReadOnly="true" .. />

EDIT - 2这个黑客似乎只有在以下情况下才有效XAML编译应用于主机控制/页面。

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

如何定义可从 Xaml 访问的构造函数参数 的相关文章

  • VS2015 代码覆盖率不适用于 ASP.NET Core 1.0(以前称为 ASP.NET 5)中的测试

    我有一个 ASP NET Core 1 0 以前称为 ASP NET 5 解决方案 其中包含几个类库 包 和一个 ASP NET MVC6 项目 我有一个使用支持 Core 1 0 的新 XUnit 2 0 的测试库 然而 由于某种原因 当
  • 为什么这个 IA32 汇编代码有 3 个 leaal 指令?

    我编译了这个C函数 int calc int x int y int z return x 3 y 19 z 我在 calc s 中得到了这个 我正在注释正在发生的事情 file calc c text globl calc type ca
  • Cocoa 常量名称中的“k”代表什么[重复]

    这个问题在这里已经有答案了 可能的重复 Apple 的 API 中的 k 前缀表示什么 https stackoverflow com questions 675816 what does the k prefix indicate in
  • 寻求有关 cs50“现金”问题集的 C 贪婪算法的帮助[已关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 目标是创建一种算法 该算法接受输入并给出从输入中减去值 25 10 5 1 的次数的输出 代码需要以尽可能贪婪的方式执行此操作 尽可能获取最
  • 动态库使用静态库,出现未定义的符号

    我一直在寻找解决问题的方法 只是得到了一些线索 但我找不到任何一致的解决方案 我有一个动态库 libdyna so 的代码 它使用3个静态库 libone a libtwo a lib Three a 和log4cpp库的功能 当我第一次构
  • ExecuteNonQueryAsync 并在 SQL 事务中提交

    我正在寻求对我创建的一段代码的帮助 我正在尝试在事务中从 C 进行异步 SQL 调用 例如我可能正在更新或删除表中的行 这是我到目前为止所拥有的 但我似乎无法找到有关在事务中执行此操作的太多信息 根据我在这里所拥有的以及到目前为止我所理解的
  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo
  • 如何使用 CMake 链接多个库

    我有一些与 DCMTK 相关的代码 如果我从命令行使用 g 我可以成功构建并运行它 这是代码 include dcmtk config osconfig h include dcmtk dcmdata dctk h int main Dcm
  • 具有 Nhibernate 设计问题的领域模型

    我正在尝试进入 DDD with C 世界 我使用NHibernate作为我的ORM工具 因此尝试开发一个PI Persistence Ignorance 模型 但是 在我的一些实体 表示为 POCOS 中 我的属性设置器中有业务规则 例如
  • 除非我在开​​始时声明变量,否则为什么会收到“错误未声明的标识符”?

    当我有以下情况时 include stdafx h include
  • C++ 访问嵌套类的私有成员

    标题可能有点误导 我有以下问题 我有一棵由叶子和内部节点组成的树 用户应该能够在叶子中存储任何信息and该树有一些方法可以获取一组用户定义的值 并且需要在恒定时间内 未摊销 访问相应的叶子 我提出了以下想法 但它不起作用 因为不幸的是我无法
  • 即使在不活动状态下,Hangfire 也会继续运行 SQL 查询

    我正在开发一个 ASP net MVC 5 网站 并使用 Hangfire 来安排一些任务 在本例中每 3 分钟一次 我知道一个事实是 运行这样的任务 以及与之相关的数据库查询 只需要几秒钟 我面临的问题是 Hangfire 似乎让我的 S
  • llvm clang 编译器上的dynamic_cast失败

    我看到一个奇怪的失败dynamic cast正在返回NULL在 clang 编译器上 但相同的代码可以在 gcc 环境下运行 您能否指出根本原因是什么 之间可能有什么区别dynamic cast关于 llvm 和 gcc 我正在使用两个编译
  • 静态成员函数中的封闭类的 C++ 类型

    我认为这是完全不可能的 但如果呢 在任何版本的 C 中 是否有可能以某种方式获取静态成员函数中封闭类的类型 class Impossible public static void Fun typedef Impossible Enclosi
  • 如何根据条件退出 PostSharp 方面的 OnEntry 方法中的方法

    我希望方面根据如下条件退出方法调用 AttributeUsage AttributeTargets Method public class IgnoreIfInactiveAttribute OnMethodBoundaryAspect p
  • 作为服务运行时,URLDownloadToFile() 将对象写入缓存中

    我有一个软件 可以将图像下载到工作目录中 然后对其进行处理以创建视频 之后 这些文件将被独立脚本删除 问题是它还将文件写入以下目录 该软件作为系统服务运行 C Windows SysWOW64 config systemprofile Ap
  • 是否可以使用 struct stat 描述符获取和设置文件名?

    是否可以在获取或设置 重命名 文件名时给出文件的绝对路径 并将 struct stat 实例作为 lstat 函数的参数 正如我在文档结构中发现的那样 struct stat dev t st dev ID of device contai
  • 将变量传递给 SSIS 中的项目参数

    我是这个网络的新手 希望我能找到这个问题的答案 我有一个 SSIS 项目 其中包含多个使用项目参数的包 我正在尝试更新项目参数 例如 PeriodStart 2014年5月31日 我找不到动态写入项目参数的方法 我在 4 0 框架中使用 V
  • TPL架构问题

    我目前正在开展一个项目 我们面临并行处理项目的挑战 到目前为止没什么大不了的 现在来说说问题 我们有一个 ID 列表 我们定期 每 2 秒 为每个 ID 调用一个 StoredProcedure 需要单独检查每个项目的 2 秒 因为它们是在
  • 如何用纯色填充位图?

    我需要使用唯一的 RGB 颜色创建 24 位位图 分辨率 100x100 像素 并将生成的图像保存到磁盘 我目前使用的是SetPixel http msdn microsoft com en us library 6c7eyzyb aspx

随机推荐

  • 倾斜表面辐射的 solaR 时间戳

    我正在尝试使用 R 包solaR给定水平面上测量的辐照度 计算倾斜面上的辐照度 我可以让代码工作 但最终输出时间戳没有意义 可以找到此代码的数据here 这是德克萨斯州奥斯汀一天的测量辐照度 全局水平 ghz 直接法线 dir 漫射水平 d
  • 如何通过类名或id获取元素

    我正在尝试通过 angularjs 查找 html 中的元素 这是 HTML
  • Xsl:如何根据总和进行分组和排序?

    我有下面的xml
  • 引用/对象的静态/动态转换

    不久前我和一群选角操作员一起玩 显然我当时并没有真正理解 我现在正在查看我的代码 我看到了这个 Base Derived p derived m state static cast p derived m state 我想我现在对指针和引用
  • 如何在 PHP 中获取真实的主机名或服务器名

    如何在 PHP 中不使用 SERVER SERVER NAME 来获取真实主机名 还有其他更可靠的方式获取吗 我创建了一个从域路径获取主机名的函数 我想避免使用 SERVER SERVER NAME 变量 因为它可以通过在 HTTP 请求中
  • 无法从模板获取内容

    在 Javascript 中 我试图动态创建 HTML
  • 使用 python-docx 检索具有文档结构的文档内容

    我必须从中检索表格和上一个 下一个段落docx文件 但无法想象如何获取它python docx 我可以通过以下方式获取段落列表document paragraphs 我可以通过以下方式获取表格列表document tables 如何获得这样
  • 具有 Dotrine 的累积 DQL

    我很难制定出适当的 DQL 来生成累积和 我可以用普通的 SQL 来完成它 但是当涉及到 DQL 时我无法掌握它 下面是它在 SQL 中的样子 SELECT s name p date short p nettobuy select sum
  • 在 Raspberry Pi 上插入 USB 后使用 udev 运行脚本

    我试图在插入任何 USB 驱动器后从 udev 规则运行脚本 当我手动运行脚本时 USB正常挂载后 就可以正常运行了 该脚本调用Python程序来运行 Python程序使用USB驱动器上的文件 那里没有任何问题 如果我编写脚本只是将日期记录
  • xUnit 异步测试在 VS2015 中显示为“外部”

    我的所有异步 xUnit 测试在 VS2015 的测试资源管理器中显示为外部时遇到问题 在测试资源管理器中调用 Run All 时 它们仍然会运行 但由于它们被认为是外部的 所以几乎所有 VS2015 集成都不起作用 例如导航 在测试资源管
  • 哪个正则表达式需要回溯?

    实现正则表达式匹配有三种不同的解决方案 DFA NFA 和回溯 我正在寻找例子 一个正则表达式 可以用 DFA 来解决 以及为什么 DFA 就足够了 正则表达式 它需要 NFA 以及需要 NFA 的原因 正则表达式 需要回溯以及需要回溯的原
  • 使用 MS SQL 获取遵守特定条件的所有可能组合

    我需要构建一个 SQL 查询 但我不知道如何做 如果有人提供帮助 我将非常感激 我有下表 GroupedBYField ConditionField ToBeSummeField 1 1 1 1 1 2 1 1 3 2 2 100 2
  • LWUIT 文本区域问题

    有什么办法可以写在textArea不进入 LCDUI 窗口 我想编辑我的textArea在我的 LWUIT 应用程序中 但每次我尝试执行此操作时 应用程序都会将我发送到 LCDUI 窗口 要禁用 LWUIT 编辑控件触发器 您可以使用以下代
  • 为什么我的数据绑定会写出 Length 属性?

    所以我设置了一个视图模型到它绑定的地方ObservableCollection
  • 如何在 Genymotion VM 中安装 Google Play 服务(不支持拖放)?

    Vm如何在不支持拖放的 Genymotion 模拟器中安装 Google Play 服务 我无法按照 Stack Overflow 帖子中所述安装它如何在 Genymotion 虚拟设备上安装 Google 框架 Play 帐户等 由于缺乏
  • 未捕获的类型错误:(中间值)(...)不是函数

    当我在闭包中将 js 逻辑编写为单个 js 文件时 一切正常 如下所示 function win main logic here win expose1 win expose2 window 但是当我尝试在同一个 js 文件中的闭包之前插入
  • Windows 8 Live SDK 可以使用当前用户以外的其他 Microsoft 帐户吗?

    使用 Windows 8 Live SDK 您可以让用户授予您对其 Microsoft 帐户的权限 通过此您可以获得他们的姓名和照片等等 但使用 Live SDK 似乎要求应用程序的用户使用与登录 Windows 8 当前会话的用户相同的
  • R 提示符中存在错误的 ANSI 转义序列

    当 R 在支持颜色的终端中交互运行时 可以使用 ANSI 转义序列在提示中添加颜色 例如 options prompt 033 0 31mThis is red 033 0m gt Unfortunately something goes
  • 使用反射创建通用列表

    我有一个函数 它使用反射来从对象 B 设置对象 A 的属性 在某一时刻 我需要实例化一个通用集合 但是 我无法让它工作 这是我现在所拥有的 IList list destProperty PropertyType GetGenericTyp
  • 如何定义可从 Xaml 访问的构造函数参数

    Xamarin 的ListView定义一个 1 参数构造函数如下 public ListView Parameter CachingStrategy ListViewCachingStrategy cachingStrategy 因此 Ca