XAML 有没有办法在MAUI的列表视图中的项目上添加按钮?

oxcyiej7  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(228)

我需要在MAUI的列表视图中的每个项目上添加两个按钮,但我仍然找不到正确的答案,有什么想法吗?

<ListView x:Name="friendList" ItemsSource="{Binding Friends}" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding userName}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我想在用户名旁边添加“接受”和“拒绝”按钮,因为这将是一个好友请求列表

igsr9ssn

igsr9ssn1#

您可以将ViewCell<DataTemplate>中的GridStackLayout一起使用:

<ListView x:Name="friendList" ItemsSource="{Binding Friends}" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Orientation="Horizontal">
                    <Label Text="{Binding userName}" />
                    <Button Text="Accept" />
                    <Button Text="Decline" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

您需要自己为按钮添加命令或事件处理程序。

q9rjltbz

q9rjltbz2#

根据您的问题,您还可以考虑通过添加上下文菜单来实现。
ListView支持上下文菜单项,上下文菜单项定义为MenuItem对象,这些对象添加到每个项的DataTemplate中的ViewCell.ContextActions集合。右键单击ListView中的项时,将显示MenuItem对象。可以使用下面的代码:

<ListView x:Name="friendList" ItemsSource="{Binding Friends}" >
<ListView.ItemTemplate>
    <DataTemplate>
        <ViewCell>
             <ViewCell.ContextActions>
                <MenuItem Text="Accept"
                          Command="{Binding Source={x:Reference friendList}, 
                          Path=BindingContext.AcceptCommand}"
                          CommandParameter="{Binding}" />
                <MenuItem Text="Decline"
                          Command="{Binding Source={x:Reference friendList}, 
                          Path=BindingContext.DeclineCommand}"
                          CommandParameter="{Binding}" />
            </ViewCell.ContextActions>
        </ViewCell>
    </DataTemplate>
</ListView.ItemTemplate>
</ListView>

当然,您也可以使用菜单项的事件处理程序。

相关问题