首页 > 解决方案 > 如何在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>

标签: xamarin.forms

解决方案


很容易你这样做:

首先,给你的 ListView 一个名字(已经在那里)

然后在绑定中使用该名称作为绑定上下文的引用:

Text="{Binding Path=BindingContext.YourItem, Source={x:Reference listview}}"

YourItem您的字符串属性的名称在哪里ItemsSource


推荐阅读