将属性绑定到列表视图数据模板内的元素

2024-03-17

我无法让数据绑定在DataTemplate以 Xamarin 形式。我可以让它与ListView(即绑定RowHeight),但一旦进入DataTemplate,将内容设置为我的 ViewModel 的属性没有任何影响。

在下面的示例中,如果我设置ColumnDefinition.Width对于属性,它完全被忽略,但是将其设置为硬值可以正常工作。我已经添加了一个标签来查看属性值是什么,但在里面时它显示为空白Datatemplate,并且我已重新检查该属性是否正确,因为如果我将标签从Listview,它显示正确的值。

有任何想法吗?

UPDATE:

我的类是“ParentPage”,它有 2 个属性:“患者”和“设置”。患者有一个可观察的“PatientList”集合,我如何绑定到标签中下面显示的“Settings.Fontsize”。我尝试了所有我能想到的组合:

<ListView   x:Name="listView" ItemsSource="{Binding ParentPage.Patients.PatientsList}" RowHeight="{Binding ParentPage.Settings.RowHeight}"  >
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <Grid HorizontalOptions="FillAndExpand">
          <Grid.RowDefinitions>
            <RowDefinition Height="*" />
          </Grid.RowDefinitions>
          <Image  Grid.Row="0" Grid.Column="0"
             Source="{Binding Picture}" />

          <Label  TextColor="Red" Text="{Binding ParentPage.Settings.FontSize}"   
       HorizontalOptions="Center" />

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

BindingContext,换句话说,列表视图的“ItemsSource”,适用于整个列表视图,包括 DataTemplate。因此,如果您想绑定某些内容,那么它的属性应该位于 BindingContext 中,在您的情况下它是患者。因此,Pasient 类应该包含此属性。但是,有一个技巧。如果您想要绑定不在列表视图绑定上下文中的内容,那么您应该命名列表视图,例如 x:Name = "YourListView",然后在绑定的数据模板中编写以下内容:

Property="{Binding Source={x:Reference Name = "YourListView"},
          Path=BindingContext.YourNameOfPropertyInViewModel}"

这样,您的属性将使用列表视图元素级别的绑定上下文,即您的情况下的 ViewModel。

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

将属性绑定到列表视图数据模板内的元素 的相关文章

随机推荐

  • 让对象由 spring 管理

    我怎样才能管理一个已经存在的对象 我想把它连接到Springs AoP能力使用aspectj 我知道这是一个挑战 因为Spring AoP使用可能与对象一起创建的动态代理 为什么我需要这个 我有一个第三者类采用构造函数参数 该参数仅在run
  • 从外部访问python开发服务器

    我无法从外部访问python开发服务器 我的机器上运行着一个非常小的django项目 现在我想让同一局域网中的计算机能够访问它 但它做不到 我的机器上没有运行防火墙 有没有解决的办法 你如何运行服务器 你尝试过这样的事情吗 manage p
  • 如何使用 daniel gindi/Swift 中的图表库在饼图中显示百分比符号(IOS 图表)

    我正在使用图表框架 由 Daniel gindi 设计 工作正常但是 如何在饼图上显示 符号 我还尝试使用 NSNumberFormatter 方法将数据值转换为百分比 但没有得到 符号 我在这里上传代码 IBOutlet var pieC
  • Bootstrap 3 折叠(从左到右)[重复]

    这个问题在这里已经有答案了 http getbootstrap com javascript collapse http getbootstrap com javascript collapse 有没有办法让这个菜单从左向右滑动 我环顾四周
  • 如何按对象属性vbscript对字典进行排序

    我正在尝试使用我在网上找到的函数对字典进行排序 该函数通过对象属性 即 Id 进行排序 但在此For Each i In dict我收到此错误消息 Microsoft VBScript 运行时错误 对象不支持此属性或方法 我努力了For E
  • 使用 Interop.Excel 将 Excel 转换为 PDF 时不显示图像

    我正在使用 Interop Excel 将 excel xlsx 2010 转换为 PDF 以用于应用程序 在我的开发机器上它工作正常并且图像显示正确 但是 在服务器上 当 Excel 转换为 PDF 时 图像 一些通过代码插入 另一些在模
  • FireMonkey 控件是否具有与 VCL Invalidate() 等效的方法?

    我正在创建一些自定义 FireMonkey GUI 控件 组件需要更新以响应用户交互 VCL 控件可以调用 Invalidate 将其放入队列中进行重绘 FireMonkey 有等效的方法吗 FireMonkey 控件有一个 Repaint
  • 在 Flutter/Dart 中如何将参数从命令行传递到 main ?

    如何运行命令并使用 Flutter Dart 传递一些自定义参数 以便可以在main 调用例如 flutter run device my custom arg 那么我可以通过以下方式访问它 void main List
  • 运行 Pig 脚本时的堆空间问题

    我正在尝试执行包含大约 3000 万数据的 Pig 脚本 但收到以下堆空间错误 gt ERROR 2998 Unhandled internal error Java heap space gt gt java lang OutOfMemo
  • 应将哪些文件导入到 Web 服务项目的 Subversion 存储库中?

    我使用Web服务自上而下的方法在Eclipse中创建了一个Java项目 即创建一个WSDL文件并使用它来生成带有axis2的Skeleton Java类和Web服务 因此 有很多自动生成的文件和axis2 jar图书馆 我的项目具有以下文件
  • 如何在 codeigniter 挂钩文件中加载模型

    这是我的问题 我正在构建一个需要过滤器的应用程序 我已经让过滤系统正常工作 我什至可以查明我当前想要访问的实际方法 问题是我无法从过滤器文件访问 CI 核心 我在网上搜索过 虽然我找到了一些建议的解决方案 例如 Dipping into C
  • @xmlschema jaxb package-info.java 编译错误

    我尝试在包级别使用注释 但从 Eclipse 中收到编译错误 我有课Head具有以下包 注释 javax xml bind annotation XmlSchema xmlns javax xml bind annotation XmlNs
  • Facebook 页面的 webhook [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在一页上拥有管理员访问权限 我创建了 facebook 应用程序 并在我的网站上创建并验证了 webhook 问题是我
  • Html.ListBoxFor错误问题asp.mvc 3

    我的代码中有类似的内容 但收到错误 异常详细信息 System ArgumentException 值不能为 null 或空 参数名称 名称 我究竟做错了什么 感谢帮助 model IEnumerable
  • 表单外的复选框

    由于设计要求 我需要在表单外部放置几个复选框 是否仍然可以将这些值包含在表单的提交操作中 也许用javascript或其他我没有想到的方式 如果您使用 HTML5 则有一个form属性 请参见以下示例 p p
  • 如何使用 web3.js 1.0 进行身份验证和发送合约方法

    我对如何使用 web3 1 0 库执行合约的方法感到困惑 此代码有效 只要我先手动解锁帐户 var contract new web3 eth Contract contractJson contractAddress contract m
  • 使用回车符迭代文件

    有没有办法使用语法迭代文本文件 with open filename r as f for line in f print f 如果文件仅包含回车符而没有换行符 到目前为止我能做的就是 with open filename r as f f
  • 我所有的 javascript 在底部添加了一些代码

    我的网站使用 CodeIgniter 今天我发现我的网站在所有 JavaScript 文件 包括 jQuery 文件 的底部添加了一些代码 代码是这样的 4fd970 You are blocked by day limit 4fd970
  • 无法签入 TFS 的更改

    我在尝试签入对 Visual Studio Online 上托管的 TFS 的更改时遇到问题 上周才开始 我在跑步Visual Studio Professional 2017版本15 5 2 当我尝试签入更改时 出现以下错误 C My W
  • 将属性绑定到列表视图数据模板内的元素

    我无法让数据绑定在DataTemplate以 Xamarin 形式 我可以让它与ListView 即绑定RowHeight 但一旦进入DataTemplate 将内容设置为我的 ViewModel 的属性没有任何影响 在下面的示例中 如果我