首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从RadListView中获取所选项目?

如何从RadListView中获取所选项目?
EN

Stack Overflow用户
提问于 2017-11-26 16:04:51
回答 4查看 855关注 0票数 0

我的RadListView绑定到一个对象列表。我的XAML看起来像这样:

代码语言:javascript
复制
<telerikDataControls:RadListView x:Name="ListView" VerticalOptions="FillAndExpand" SelectionMode="Single" ItemTapped="ListView_OnCellTapped">               

下面是我的事件方法:

代码语言:javascript
复制
void ListView_OnCellTapped(object sender, EventArgs e)
{
  var obj = ListView.SelectedItem;
}             

但是,SelectedItem始终返回null。我怀疑我需要从EventArgs获取选定的对象,但我不确定如何获取,因为包含在e中的Items集合不能直接访问。有什么想法吗?

编辑1:这是我的XAML:

代码语言:javascript
复制
<telerikDataControls:RadListView x:Name="ListViewMachines" HeightRequest="357" SelectionMode="Single" ItemTapped="ListViewMachines_OnItemTapped">
    <telerikDataControls:RadListView.ItemTemplate>
        <DataTemplate>
            <telerikListView:ListViewTemplateCell Tapped="Cell_OnTapped">
                <telerikListView:ListViewTemplateCell.View>

                    <Grid VerticalOptions="Center" HorizontalOptions="FillAndExpand" Padding="16, 0, 0, 0">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <Grid Row="0" Column="0">
                            <iconize:IconImage IconSize="25" IconColor="Green" Icon="fa-cogs"></iconize:IconImage>
                        </Grid>
                        <Grid Row="0" Column="1">
                            <Label Text="{Binding MachineName}" FontSize="Medium" />
                        </Grid>
                    </Grid>

                </telerikListView:ListViewTemplateCell.View>
            </telerikListView:ListViewTemplateCell>
        </DataTemplate>
    </telerikDataControls:RadListView.ItemTemplate>
    <telerikDataControls:RadListView.GroupDescriptors>
        <telerikListView:PropertyGroupDescriptor PropertyName="FunctionalLocationName"/>
    </telerikDataControls:RadListView.GroupDescriptors>
    <telerikDataControls:RadListView.GroupHeaderTemplate>
        <DataTemplate>
            <Grid BackgroundColor="#C1C1C1">
                <Label Text="{Binding }" TextColor="#303030" FontSize="Large" HorizontalOptions="Center"/>
            </Grid>
        </DataTemplate>
    </telerikDataControls:RadListView.GroupHeaderTemplate>
</telerikDataControls:RadListView>

我尝试将ItemTapped和SelectionChanged添加到telerikDataControls:RadListView中,但都没有返回选定的对象。

EN

回答 4

Stack Overflow用户

发布于 2017-11-27 00:59:06

如下所示获取GridView的SelectedCells

代码语言:javascript
复制
if (this.radGridView1.SelectedCells.Count > 0)
{
     GridViewSelectedCellsCollection selectedCells = this.radGridView1.SelectedCells;
}
票数 1
EN

Stack Overflow用户

发布于 2017-11-27 17:35:21

但是,SelectedItem始终返回null。

正如您所描述的,您可能需要在XAML中使用ItemSelected="OnSelection",而不是ItemTapped

根据Xamarin.Forms ListView Sample: Interactivity,所选操作可能如下所示:

代码语言:javascript
复制
    void OnSelection (object sender, SelectedItemChangedEventArgs e)
    {
        if (e.SelectedItem == null) {
            return; //ItemSelected is called on deselection, which results in SelectedItem being set to null
        }
        DisplayAlert ("Item Selected", e.SelectedItem.ToString (), "Ok");
        //comment out if you want to keep selections
        ListView lst = (ListView)sender;
        lst.SelectedItem = null;
    }

因此,可以将所选项目作为示例代码(link)获取:

代码语言:javascript
复制
e.SelectedItem

请注意,使用SelectedItemChangedEventArgs而不是EventArgs作为参数类型。然后,您可以使用e.SelectedItem直接获取所选项目。

票数 1
EN

Stack Overflow用户

发布于 2017-11-27 19:31:56

感谢snippets的伙伴们,但我设法找到了如何使用ItemTapped事件来做到这一点:

代码语言:javascript
复制
private void ListView_OnItemTapped(object sender, ItemTapEventArgs e)
{
  var obj = e.Item as MyObjectType;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47494143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档