xamarin.forms - 如何在itemsource之外绑定item?
问题描述
我有一个来自 viewModel 的带有 itemSource 的列表视图,但我需要将此列表视图中的标签文本绑定到 itemSource 之外
<ListView
ItemsSource="{Binding reports, Mode=TwoWay}"
HasUnevenRows="True" ItemTapped="ListView_ItemTapped"
VerticalOptions="Center" SeparatorVisibility="Default"
SeparatorColor="Black" x:Name="listview">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame Padding="0.20" Margin="2">
<Grid x:Name="gridview">
<BoxView Grid.Column="0" Grid.Row="0" BackgroundColor="Black" WidthRequest="1" VerticalOptions="Center" HorizontalOptions="End"/>
<Label Text="{Binding Governerate}" Grid.Column="0"/>
<BoxView Grid.Column="1" Grid.Row="0" BackgroundColor="Black" WidthRequest="1" VerticalOptions="Center" HorizontalOptions="End"/>
<Label Text="{Binding VisitCount}" Grid.Column="2" x:Name="visitcounts" TextColor="Red"/>
<BoxView Grid.Column="2" Grid.Row="0" BackgroundColor="Black" WidthRequest="1" VerticalOptions="Center" HorizontalOptions="End"/>
<Label Text="{Binding item outside itemsource}" Grid.Column="3"/>
<Label Grid.Column="1"/>
</Grid>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
解决方案
很容易你这样做:
首先,给你的 ListView 一个名字(已经在那里)
然后在绑定中使用该名称作为绑定上下文的引用:
Text="{Binding Path=BindingContext.YourItem, Source={x:Reference listview}}"
YourItem
您的字符串属性的名称在哪里ItemsSource
推荐阅读
- javascript - 在网页上显示后端响应
- cuda - L2 事务如何映射到 GPU 中的 DRAM?
- python - Python WhiteNoise 不在 Flask 应用程序中进行 gzip 压缩
- spring - Spring boot 运行错误 bootRun 工作正常,但应用程序运行不工作
- android - 检测当前是否正在显示最近的应用程序(又名概览屏幕)
- java - 将文件从目录复制到手机内部存储的另一个目录时出错?
- google-bigquery - bigquery 嵌套对象:没有这样的字段
- java - XWPF 删除第一页
- java - 带属性的弹簧单例
- unit-testing - 等价分区