xamarin 表单从按钮单击捕获列表视图

Posted

技术标签:

【中文标题】xamarin 表单从按钮单击捕获列表视图【英文标题】:xamarin forms capture listview from button click 【发布时间】:2020-07-26 11:08:07 【问题描述】:

我下面的代码显示了一个列表视图,当单击“请播放您的订单”按钮时,函数 ButtonPressed(object sender, EventArgs e) 被点击。如何从 ButtonPressed 函数中捕获整个列表视图...

我尝试过类似的东西

    void ButtonPressed(object sender, EventArgs e)
        
            var listView = (ListView)sender;//but this did not work






 <ContentPage.Content>
            <StackLayout>
                <ListView ItemsSource="Binding CompletedList" HasUnevenRows="True" SeparatorVisibility="None">
                    <ListView.Header>
                        <Button Text="Please place your order" Clicked="ButtonPressed"/>
                    </ListView.Header>
                    <ListView.Footer>
                    <Label x:Name="Items" HorizontalTextAlignment="End" VerticalTextAlignment="Start" Margin="20,20" FontAttributes="Bold"/>
                    </ListView.Footer>
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <Grid Padding="10" RowSpacing="10" ColumnSpacing="10">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="*"/>
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Label Grid.Column="0" Text="Binding I_D" VerticalOptions="End" IsVisible="False"/>

                                    <Label Grid.Column="2" Grid.Row="1" Text="Binding NameOfProduct" VerticalOptions="End"/>                     
                                </Grid>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>

【问题讨论】:

你的 ListView 绑定到 CompletedList,所以你真的只需要访问那个变量,而不是 ListView 本身。如果您确实需要访问 ListView 本身,只需为其指定一个名称并以这种方式引用它。 是的,但是我找不到正确的语法,例如它是 e.CompletedList 吗?,这是行不通的 不,它不会作为参数传递给处理程序。这取决于它是定义为页面上的属性还是 VM 上的属性等。您的 BindingContext 是如何设置的? 啊,是的,好吧...我从 listView 的 BindingContext 中得到它。再次感谢杰森,如果您想要标记的答案,请将其写下来并打勾。干杯 【参考方案1】:

你的ListView 绑定到CompletedList,所以你真的只需要访问那个变量,而不是ListView 本身。

【讨论】:

以上是关于xamarin 表单从按钮单击捕获列表视图的主要内容,如果未能解决你的问题,请参考以下文章

在主屏幕小部件的列表视图上方添加一个按钮 - 如何捕获单击此按钮?

ListView 内的 Xamarin 表单按钮命令绑定

如何在 xamarin 表单的集合视图中的最后一项旁边添加图像/按钮?

使用啥控件从相机捕获图像并在 ui 上显示为带有事件 xamarin ios 的缩略图

将多个类的数据绑定到单个列表视图/xamarin 表单

Xamarin 表单从另一个视图获取数据