2015-02-28 18 views
11

Tôi có thể kích hoạt Bộ chọn theo chương trình không?Trình kích hoạt Xamarin.Forms Picker

Tôi muốn một nút bên cạnh bộ chọn cho biết bộ chọn là trình đơn thả xuống "có thể nhấp". Nhưng làm cách nào tôi có thể mở bộ chọn khi nút được nhấp?

Trả lời

5

Bạn có thể đặt tên bộ chọn (ví dụ: myPicker) và gọi sự kiện Tập trung của nó. Đừng chắc chắn rằng bạn đang ở trên các chủ đề chính tại thời điểm bạn đang gọi điện thoại myPicker.Focus()

+1

Tôi ban đầu có mã của tôi làm việc bằng cách sử dụng câu trả lời này ở đây. Thật không may, tôi vừa nhận thấy rằng điều này đã ngừng hoạt động. Gọi picker.Focus() bây giờ dường như không làm gì cả trên iOS và Windows Phone (không thể kiểm tra Android). Có ai biết nếu bất cứ điều gì đã thay đổi trong Xamarin.Forms để phá vỡ chức năng này? – Patrick

+0

điểm "đảm bảo bạn đang ở trên chủ đề chính" đã giúp tôi giải quyết lỗi khi bộ chọn sẽ không hiển thị sau khi displayalert – ang

1

Thật không may là không; các hoạt động bên trong của bộ chọn gần như hoàn toàn trong các trình kết xuất và không được hiển thị thông qua API.

+0

Bộ chọn chỉ là nhãn với cử chỉ nhấn từ những gì tôi biết. Có một sự kiện tập trung cũng công khai. –

2

Như @Hutjepower và this xamarin forums post đề cập đến, đoạn code sau nên công việc:

Device.BeginInvokeOnMainThread(() => 
{ 
    if (yourPicker.IsFocused) 
     yourPicker.Unfocus(); 

    yourPicker.Focus(); 
}); 

Tuy nhiên Tôi đã thấy rằng nó hiện không hoạt động trên các ứng dụng Windows 8.1 và UWP, ít nhất là trong phiên bản Xamarin.Forms 2.3.4-pre1 mới nhất. Tôi chưa thử nghiệm trên bất kỳ thiết bị điện thoại/máy tính bảng nào. Hy vọng rằng lỗi này sẽ được sửa lại trong bản phát hành sau. Tôi đã tạo a bug report for this problem.

Các vấn đề liên quan