使用数据绑定Xamarin的数据进行选择



我有2个字段的模型Names

public class Names
    {
      public string ID { get; set; }
      public string Name { get; set; }
    }

我需要从我的型号Names获取所有名称到Xamarin中的Picker。

    <Picker Title="Select a name" 
            ItemsSource="{Binding AllNames}" 
            ItemDisplayBinding="{Binding Name}" />

最简单的方法是什么?

您需要在列表内在视图模型中使用要在列表中使用的对象创建一个ObservableCollection。这样:

public class ViewModel
{
        ObservableCollection<Names> allNames = new ObservableCollection<GroupedReportModel>();
        public ObservableCollection<Names> AllNames
        {
            get { return allNames; }
            set { SetProperty(ref allNames, value); }
        }
}

setProperty是您通过在您的ViewModel中添加InotifyPropertyChanged的实现来获得的。

我使用的代码看起来像这样:

protected bool SetProperty<T>(ref T backingStore, T value, [CallerMemberName]string propertyName = "", Action onChanged = null)
    {
        if (EqualityComparer<T>.Default.Equals(backingStore, value))
            return false;
        backingStore = value;
        onChanged?.Invoke();
        OnPropertyChanged(propertyName);
        return true;
    }
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
    {
        var changed = PropertyChanged;
        if (changed == null)
            return;
        changed.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

最新更新