在仅Xamarin后面的列表视图点击代码上显示警报

时间:2019-02-13 11:00:17

标签: c# xamarin

大家好,我有一个Xamarin列表视图,但没有使用Xamarin Forms。当我点击所选项目时,默认情况下它将变为橙色,但是我想在点击时显示DisplayAlert。有人知道如何解决吗?下面是我在C#中的列表视图

public string PhoneNumber;
StackLayout stackLayout = new StackLayout();

        _listView = new ListView
        {

            ItemTemplate = new DataTemplate(() =>
            {

                Label nameLabel = new Label();
                nameLabel.SetBinding(Label.TextProperty, "Name");
                nameLabel.FontSize = 20;
                Label addressLabel = new Label();
                addressLabel.SetBinding(Label.TextProperty, "Address");
                Label phoneLabel = new Label();
                phoneLabel.SetBinding(Label.TextProperty, "Phone");

                PhoneNumber = phoneLabel.Text;

                return new ViewCell
                {
                    View = new StackLayout
                    {
                        Padding = new Thickness(20, 5),
                        Orientation = StackOrientation.Horizontal,
                        Children =
                        {

                            new StackLayout
                            {
                                VerticalOptions = LayoutOptions.Center,
                                Spacing = 0,
                                Children =
                                {
                                    nameLabel,
                                    addressLabel,
                                    phoneLabel,
                                }
                            }
                        }
                    }
                };
            })
        };
        _listView.HasUnevenRows = true;

        _listView.ItemsSource = db.Table<Company>().OrderBy(x => x.Name).ToList();
        stackLayout.Children.Add(_listView);
        _listView.ItemTapped += _listView_ItemTapped;

        Content = stackLayout;

    }
    private void _listView_ItemTapped(object sender, ItemTappedEventArgs e)
    {
        var phoneDialer = CrossMessaging.Current.PhoneDialer;
        if (phoneDialer.CanMakePhoneCall)
            phoneDialer.MakePhoneCall("11112222");
        DisplayAlert("Phone Dial","Dialing" + e.Item.PhoneNumber, "Ok");
    }

1 个答案:

答案 0 :(得分:0)

只需创建ItemTapped方法

_listView.ItemTapped += _listView_ItemTapped;

并实施

private void _listView_ItemTapped(object sender, ItemTappedEventArgs e)
{
    var item = e.Item as Company; //Company is your model class
    DisplayAlert("Alert", item.Name, "Cancel");
}

输出屏幕

enter image description here