[英]Results not appearing in picker Xamarin.Forms
我有一個代碼掃描儀,掃描后,它返回一個字符串值。 然后,我將此字符串值添加到一個可觀察的集合中。
觸發ScanCode()方法時,相機會打開並掃描代碼,然后將值添加到列表中。 然后返回頁面,但選擇器仍然為空。 請幫助解決問題。
private ObservableCollection<string> _codes;
public ObservableCollection<string> Codes
{
get { return _codes; }
set
{
_codes = value;
OnPropertyChanged();
}
}
public async void ScanCode()
{
codes= new ObservableCollection<string>();
var cd = await CodeScanViewModel.CodePage1(); // returns the code in string
if (cd != null)
{
_codes.Add(cd.ToString());
}
}
然后在我的XAML中,如下定義了選擇器:
<Picker
Title="Codes"
ItemsSource="{Binding Codes}"
VerticalOptions="Center" />
至此,您已經將新的collection實例設置為_codes
但是沒有引發屬性更改的通知。 因此, Picker
控件仍在偵聽舊實例的集合更改事件。 為了解決此問題,請確保使用:
public async void ScanCode()
{
Codes = new ObservableCollection<string>();
...
要么,
public async void ScanCode()
{
_codes = new ObservableCollection<string>();
OnPropertyChanged(nameof(Codes));
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.