如何在列表视图上选择绑定项目

时间:2017-09-08 11:10:54

标签: c# xamarin

所以我有listview显示搜索单词的结果 如何获取在搜索结果中选择的项目?

我试过这个

<StackLayout>
    <ListView x:Name="ListViewResult" SelectedItem="{Binding objItemSelected, Mode=TwoWay}"  HasUnevenRows="True" BackgroundColor="AliceBlue" ItemSelected="OnSelection">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <ViewCell.View>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="1*"/>
                            </Grid.ColumnDefinitions>
                            <Label Grid.Column="0" Text="{Binding Text}" HorizontalTextAlignment="End"></Label>
                            <Label Grid.Column="1" Text="{Binding Id}" HorizontalTextAlignment="End"></Label>
                        </Grid>
                    </ViewCell.View>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>

public class Bind    {
    public string Text{ get; set; }
    public string Id{ get; set; }

}

背后的代码

public ObservableCollection<Bind> xmlSearch = new ObservableCollection<Bind>();
ListViewResult.ItemsSource = xmlSearch;

public Bind objItemSelected
{
    get
    {
        return _ItemSelected;
    }
    set
    {
        if (_ItemSelected != value)
        {
            _ItemSelected = value;
            OnPropertyChanged("Text");
        }
    }
}
void OnSelection(object sender, SelectedItemChangedEventArgs e)
{         
    Bind Result = sender as Bind ;
    DisplayAlert("Item Selected", Bind.Text, "Ok");

}

但这不起作用

1 个答案:

答案 0 :(得分:0)

发件人是生成事件的控件。 e.Item将包含数据绑定对象

void OnSelection(object sender, SelectedItemChangedEventArgs e)
{         
    Bind Result = e.Item as Bind;
    DisplayAlert("Item Selected", Bind.Text, "Ok");

}