所以我有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");
}
但这不起作用
答案 0 :(得分:0)
发件人是生成事件的控件。 e.Item将包含数据绑定对象
void OnSelection(object sender, SelectedItemChangedEventArgs e)
{
Bind Result = e.Item as Bind;
DisplayAlert("Item Selected", Bind.Text, "Ok");
}