如何使用其SelectedIndex属性中的值设置选取器

时间:2019-03-06 21:00:47

标签: c# xamarin mvvm xamarin.forms picker

我希望在打开加载选择器的屏幕时,以以下方式将控件设置为值“ EXPIRED”(“ CADUCADOS”)...

SetPicker

问题在于,该选择器除“ EXPIRED”(“ CADUCADOS”)外还具有其他值,如下图所示……

Picker

问题是如何将Picker控件设置为“ EXPIRED”值? ,为此,我以以下方式占用了提供给int类型的属性的SelectedIndex属性

    <!--PICKER-->
            <Picker                       
                    Title="Seleccione un estado" 
                    SelectedIndex="{Binding Index, Mode=TwoWay}"
                    ItemsSource="{Binding ListaEstados, Mode=TwoWay}"
                    ItemDisplayBinding="{Binding Estado}"      
                    SelectedItem="{Binding SelectedEstado}">
            </Picker>

我的ViewModel.CS:

 int index;

  public int Index
        {
            get
            {
                return index;
            }
            set
            {
                if (index != value)
                {
                    index = value;
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Index)));
                }
            }
        }

这是用“状态”列表填充选择器的方法,在这里,我设置了索引的值...

  private void LoadPickerEstados()
        {
            ListaEstados.Clear();

            var caducados = new Estados
            {
                IdEstado = 0,
                Estado = "CADUCADOS",
            };          

            var aprobaryplanificar = new Estados
            {
                IdEstado = 1,
                Estado = "POR APROBAR Y PLANIFICAR",
            };

            var planificar = new Estados
            {
                IdEstado = 4,
                Estado = "POR PLANIFICAR",
            };

            ListaEstados.Add(caducados);
            ListaEstados.Add(aprobaryplanificar);
            ListaEstados.Add(planificar);

         Index = 1;

        }

问题在于,当设置Index = 0 =>时返回占位符,当设置Index = 1 =>时返回批准和计划(“ POR APROBAR Y PLANIFICAR”),而当设置Index = 2 =>时返回用于计划(“ POR PLANIFICAR”),但我永远无法获得值“ EXPIRED”(“ CADUCADOS”)!

这是怎么回事?我在使用正确的财产吗? 如何为选择器设置正确的值?对我有帮助吗?

0 个答案:

没有答案