如何以通常的方式填充mvx微调器?

时间:2014-05-23 00:25:20

标签: android xamarin xamarin.android mvvmcross

我在尝试输入下拉源数据和我的Mvx.MvxSpinner的选定项目时遇到问题,这在我的其他mvx微调器之前从未发生过,而且我使用它的方式与其他mvx微调器相同已经运作良好。有人可以帮助我吗?

这是xml段,我试图修复的是mvx微调器。

<Mvx.MvxSpinner
   android:layout_width="250dip"
   android:layout_height="match_parent"
   android:background="@drawable/white_textboxstyle"
   android:textSize="18dip"
   android:autoText="false"
   android:textColor="#707070"
   local:MvxDropDownItemTemplate="@layout/spnfitfth"
   local:MvxItemTemplate="@layout/spnfifthsel"
   local:MvxBind="ItemsSource relaciones_referents_referrals ; SelectedItem spnReferentSelection" />

这是我为一个xml中的下拉项目(spnfifth)配置它的段,另一个是我选择的项目(spnfifhsel):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:local="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textSize="18dip"
        android:autoText="false"
        android:textColor="#707070"
        local:MvxBind="Text referente_fullname" />
</LinearLayout>

这是我的viewmodel:

using Cirrious.MvvmCross.ViewModels;
using ReferralMobile.Core.Services;
using System.Collections.Generic;
using System.Threading;
using Cirrious.MvvmCross.Plugins.Messenger;
using System.Linq;
using System;

namespace ReferralMobile.Core.ViewModels
{
   public class FifthViewModel: MvxViewModel
   {
     private readonly IReferalService _referalService;
     public FifthViewModel(IReferalService referalService)
     {
        _referalService = referalService;
     }
     public void Init(cls_accesso parametros_acceso)
    {
        Parametros = parametros_acceso;
    }

     private List<relacion_referente_referido> _relaciones_referents_referrals;
     private List<relacion_referente_referido> relaciones_referents_referrals {
        get {
            return _relaciones_referents_referrals;
        }
        set {
            _relaciones_referents_referrals = value;
            RaisePropertyChanged(() => relaciones_referents_referrals);
        }
      }
     private relacion_referente_referido _spnReferentSelection = new relacion_referente_referido();
     private relacion_referente_referido spnReferentSelection
     {
        get
        {
            return _spnReferentSelection;
        }
        set
        {
            _spnReferentSelection = value;
            RaisePropertyChanged(() => spnReferentSelection);
        }
      }

     private cls_accesso _parametros_acceso;
     public cls_accesso Parametros
    {
        get
        {
            return _parametros_acceso;
        }
        set
        {
            _parametros_acceso = value;
            RaisePropertyChanged(() => Parametros);
        }
    }
    private List<cls_o_general_detalle> _resultado_o_general_detalles;
    public List<cls_o_general_detalle> Resultado_o_general_detalles
     {
        get { return _resultado_o_general_detalles; }
        set
        {
            _resultado_o_general_detalles = value;
            RaisePropertyChanged(() => Resultado_o_general_detalles);
            Resultado_o_general_detalle = Resultado_o_general_detalles.AsEnumerable().FirstOrDefault();
            FillSpinner();
        }
     }
     private void FillSpinner()
     {
       var relaciones_referents_referrals2 = new List<relacion_referente_referido>();
        foreach(var det in Resultado_o_general_detalles){
            relacion_referente_referido relacion = new relacion_referente_referido();
            if (det.ged_nombre_completo != "" || det.ged_nombre_completo != null)
                relacion.referente_fullname = det.ged_nombre_completo;
            else
                relacion.referente_fullname = "";
        foreach (cls_o_referido valor in Resultado_o_referidos)
        { 
            if (valor.ged_general_detalle == det.ged_general_detalle_id)
            {  
                relacion.ValidateBeforeSaveList(new cls_ValidateReferral()
                {
                    name = valor.ref_nombre,
                    FirstLastName = valor.ref_apellido_paterno,
                    SecondLastName = valor.ref_apellido_materno,
                    email = valor.ref_email,
                    telefono = valor.ref_telefono,
                    celular = valor.ref_celular,
                    ged_general_detalle_id = det.ged_general_detalle_id
                });
                relacion.ValidateBeforeSaveList(new cls_ValidateReferral()
                {
                    name = valor.ref_nombre2,
                    FirstLastName = valor.ref_apellido_paterno2,
                    SecondLastName = valor.ref_apellido_materno2,
                    email = valor.ref_email2,
                    telefono = valor.ref_telefono2,
                    celular = valor.ref_celular2,
                    ged_general_detalle_id = det.ged_general_detalle_id
                });
                relacion.ValidateBeforeSaveList(new cls_ValidateReferral()
                {
                    name = valor.ref_nombre3,
                    FirstLastName = valor.ref_apellido_paterno3,
                    SecondLastName = valor.ref_apellido_materno3,
                    email = valor.ref_email3,
                    telefono = valor.ref_telefono3,
                    celular = valor.ref_celular3,
                    ged_general_detalle_id = det.ged_general_detalle_id
                });
                relacion.ValidateBeforeSaveList(new cls_ValidateReferral()
                {
                    name = valor.ref_nombre4,
                    FirstLastName = valor.ref_apellido_paterno4,
                    SecondLastName = valor.ref_apellido_materno4,
                    email = valor.ref_email4,
                    telefono = valor.ref_telefono4,
                    celular = valor.ref_celular4,
                    ged_general_detalle_id = det.ged_general_detalle_id
                });
                relacion.ValidateBeforeSaveList(new cls_ValidateReferral()
                {
                    name = valor.ref_nombre5,
                    FirstLastName = valor.ref_apellido_paterno5,
                    SecondLastName = valor.ref_apellido_materno5,
                    email = valor.ref_email5,
                    telefono = valor.ref_telefono5,
                    celular = valor.ref_celular5,
                    ged_general_detalle_id = det.ged_general_detalle_id
                });
                relaciones_referents_referrals2.Add(relacion);
              }
          }
      }
        relaciones_referents_referrals = relaciones_referents_referrals2;
        spnReferentSelection = new relacion_referente_referido();
       spnReferentSelection= relaciones_referents_referrals.AsEnumerable().FirstOrDefault();
     }
    private cls_o_general_detalle _resultado_o_general_detalle;
    public cls_o_general_detalle Resultado_o_general_detalle
    {
        get { return _resultado_o_general_detalle; }
        set
        {
            _resultado_o_general_detalle = value;
            RaisePropertyChanged(() => Resultado_o_general_detalle);
        }
    }
    private List<cls_o_referido> _resultado_o_referidos;
    public List<cls_o_referido> Resultado_o_referidos
    {
        get
        {
            return _resultado_o_referidos;
        }
        set
        {
            _resultado_o_referidos = value;
            RaisePropertyChanged(() => Resultado_o_referidos);
        }
    }
  }
 }

这是我想用来填充mvx微调器的类:

public class relacion_referente_referido
    {
        public string referente_fullname { get; set; }
        public List<cls_ValidateReferral> referidos = new List<cls_ValidateReferral>();
        public int ubicacion { get; set; }
        private int _total_referidos = 0;
        public int total_referidos
        {
            get
            {
                return _total_referidos;
            }
            set
            {
                _total_referidos = value;
            }
        }
        public void ValidateBeforeSaveList(cls_ValidateReferral valor)
        {
            if (valor.name != "" && (valor.FirstLastName != "" || valor.FirstLastName != ""))
            {
                if ((valor.FirstLastName != "" && valor.SecondLastName != ""))
                    valor.fullname = valor.name + " " + valor.FirstLastName + " " + valor.SecondLastName;
                else
                {
                    if ((valor.FirstLastName != ""))
                        valor.fullname = valor.name + " " + valor.FirstLastName;
                    else
                        if ((valor.SecondLastName != ""))
                            valor.fullname = valor.name + " " + valor.SecondLastName;
                }
            }
            else
                valor.fullname = "";
            if (valor.fullname != "" && (valor.email != "" || valor.celular != "" || valor.telefono != ""))
                referidos.Add(valor);
            total_referidos = referidos.Count;
        }
      }

0 个答案:

没有答案