Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有自定义MVX适配器的MvxListView不';我不能在MvxFragment中工作_C#_Xamarin_Mvvmcross - Fatal编程技术网

C# 带有自定义MVX适配器的MvxListView不';我不能在MvxFragment中工作

C# 带有自定义MVX适配器的MvxListView不';我不能在MvxFragment中工作,c#,xamarin,mvvmcross,C#,Xamarin,Mvvmcross,我试图在片段中显示带有自定义MVXAAdapter的MvxListView,但ListView从未显示。我进行了调试,适配器中的GetView方法从未调用过。有人能帮我吗 我正在使用MvvmCross 4.0和MvvmCross.Droid.FullFragging命名空间的片段 我的MVX适配器 public class OcorrenciasListAdapter : MvxAdapter { private Context _context; public Ocorren

我试图在片段中显示带有自定义MVXAAdapter的MvxListView,但ListView从未显示。我进行了调试,适配器中的GetView方法从未调用过。有人能帮我吗

我正在使用MvvmCross 4.0和MvvmCross.Droid.FullFragging命名空间的片段

我的MVX适配器

public class OcorrenciasListAdapter : MvxAdapter
{
    private Context _context;

    public OcorrenciasListAdapter(Context context, IMvxAndroidBindingContext bindingContext) : base(context, bindingContext)
    {
        _context = context;
    }      

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var inflater = LayoutInflater.From(_context);
        convertView  = inflater.Inflate(Resource.Layout.OcorrenciaItem, parent, false);
        var ocorrencia = (Ocorrencia) GetRawItem(position);
        var txtViewSintomas = convertView.FindViewById<TextView>(Resource.Id.txtViewSintomas);

        StringBuilder textoSintomas = new StringBuilder(ocorrencia.sintomas[0].nome);            

        if (ocorrencia.sintomas.Count >= 3)
        {
            for (int i = 1; i < 3; i++)
            {
                textoSintomas.Append(", ");
                textoSintomas.Append(ocorrencia.sintomas[i].nome);
            }
        }
        else
        {
            for (int i = 1; i < ocorrencia.sintomas.Count; i++)
            {
                textoSintomas.Append(", ");
                textoSintomas.Append(ocorrencia.sintomas[i].nome);
            }
        }

        txtViewSintomas.Text = textoSintomas.ToString();

        var txtViewData = convertView.FindViewById<TextView>(Resource.Id.txtViewData);
        txtViewData.Text = ocorrencia.cadastro.ToString("dd/MM/yyyy");

        if (ocorrencia.confirmadoMedico)
        {
            var txtViewConfirmado = convertView.FindViewById<TextView>(Resource.Id.txtViewConfirmacao);
            txtViewConfirmado.Text = "Confirmado pelo médico";
        }

        return convertView;
    }
}
public类occorreciaslistadapter:MvxAdapter
{
私人语境(private Context)(私人语境);;
public-ocorreciaslistadapter(上下文上下文,IMvxAndroidBindingContext-bindingContext):基(上下文,bindingContext)
{
_上下文=上下文;
}      
公共覆盖视图GetView(int位置、视图转换视图、视图组父视图)
{
var充气器=布局充气器。从(_上下文);
convertView=充气机。充气(Resource.Layout.oCorreciaItem,父项,false);
变量ocorrencia=(ocorrencia)GetRawItem(位置);
var txtViewSintomas=convertView.FindViewById(Resource.Id.txtViewSintomas);
StringBuilder textoSintomas=新的StringBuilder(ocorrencia.sintomas[0].nome);
如果(ocorrencia.sintomas.Count>=3)
{
对于(int i=1;i<3;i++)
{
textosinomas.Append(“,”);
textosinomas.Append(ocorrecia.sintomas[i].nome);
}
}
其他的
{
对于(int i=1;i
我的片段:

public class OcorrenciaView : MvxFragment<OcorrenciaViewModel>
{
    private MvxListView _lstViewOcorrencias;

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        base.OnCreateView(inflater, container, savedInstanceState);
        var view = this.BindingInflate(Resource.Layout.OcorrenciaView, null);
        _lstViewOcorrencias = view.FindViewById<MvxListView>(Resource.Id.lstViewOcorrencias);

        var btnAdicionar = view.FindViewById<FloatingActionButton>(Resource.Id.btnAdicionar);

        btnAdicionar.AttachToListView(_lstViewOcorrencias);

        _lstViewOcorrencias.Adapter = new OcorrenciasListAdapter(Activity, (IMvxAndroidBindingContext)this.BindingContext);

        return view;
    }
}
公共类OCorreciaView:MvxFragment
{
私有MvxListView lstViewOcorrecias;
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
base.OnCreateView(充气机、容器、保存状态);
var view=this.BindingInflate(Resource.Layout.ocorreciaview,null);
_lstViewOcorrecias=view.FindViewById(Resource.Id.lstViewOcorrecias);
var btnadicinor=view.findviewbyd(Resource.Id.btnadicinor);
btadicionar.AttachToListView(lstViewOcorrecias);
_lstViewOCorrecias.Adapter=新的OCorreciasListAdapter(活动,(IMvxAndroidBindingContext)this.BindingContext);
返回视图;
}
}
我的片段布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:local="http://schemas.android.com/apk/res-auto/AppDemia.Droid"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:gridSpec="1|8|#0093eeff|K:#ee8700ff:16,l:72,l:16,r|S:#83ee00ff:16,0,l:16,56,l:16,0,r"
android:background="@color/appdemia_branco"
android:orientation="vertical"
android:id="@+id/Content">
<com.refractored.fab.FloatingActionButton
    android:id="@+id/btnAdicionar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|right"
    android:src="@drawable/ic_add_mini"
    android:tint="@color/appdemia_branco"
    local:MvxBind="Click CriarOcorrenciaCommand"
    fab:fab_colorNormal="@color/appdemia_laranja"
    fab:fab_colorPressed="@color/appdemia_laranjaEscuro" />
<Mvx.MvxListView
    android:id="@+id/lstViewOcorrencias"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="#aeaeae"
    android:dividerHeight="1px"
    android:clickable="true"
    android:focusableInTouchMode="true"
    android:choiceMode="singleChoice"
    local:MvxBind="ItemsSource Ocorrencias; SelectedItem ObjEntidade; ItemClick ItenClickCommand; "
    local:MvxItemTemplate="@layout/ocorrenciaitem" />

我的listview iten布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/appdemia_branco"
android:orientation="vertical"
android:padding="5dp">
<TextView
    android:id="@+id/txtViewSintomas"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textColor="#606060"
    android:layout_alignParentLeft="true"
    android:typeface="sans"
    android:textSize="15dip"
    android:textStyle="bold" />
<TextView
    android:id="@+id/txtViewData"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/txtViewSintomas"
    android:layout_alignParentRight="true"
    android:textColor="#606060"
    android:typeface="sans"
    android:textSize="15dip"
    android:textStyle="bold" />
<TextView
    android:id="@+id/txtViewConfirmacao"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/txtViewSintomas"
    android:textColor="#343434"
    android:textSize="10dip"
    android:layout_marginTop="1dip"
    android:layout_alignParentLeft="true" />


最后我发现了问题:我的MvxFragment类(OCorreciaView)中的ViewModel属性没有实例化。我经常使用MvxActivity,不需要实例化ViewModel属性,因为基类(MvxActivity)实例化了它,所以我认为MvxFragment具有相同的行为。现在,我只是在OCorreciaView构造中实例化ViewModel属性,MvxListView将显示这些项

PS:我为英语错误感到抱歉。我是巴西人,我的英语非常有限