我在尝试输入下拉源数据和我的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;
}
}