c# - كيفية تحديث عرض من فيوموديل باستخدام مفمكروس و Xamarin.Android



data-binding mvvmcross (1)

حسنا، لأن ViewModel لا ينبغي أن تعرف عن View ، يجب أن لا استدعاء أي طريقة منه.

أود أن أقترح event في ViewModel حيث يمكن View الخاص بك الاشتراك. لذلك يمكنك استدعاء event الخاص بك شيء مثل FabClickDone وجهة نظرك يفعل ما يريد من أي وقت مضى، عندما حدث هذا الحدث. في حالة التمرير الخاص بك.

هنا مثال على التعليمات البرمجية الخاصة بك فيوموديل:

public delegate void FabClickDoneEvent(object sender, EventArgs args);
public event FabClickDoneEvent FabClickDone;

protected virtual void OnFabClickDone()
{
    FabClickDone?.Invoke(this, EventArgs.Empty);
}

ثم كنت مجرد استدعاء من قبل

void onclick(sender object , eventargs e)
{
    // Do something inside your viewmodel
    // ...
    OnFabClickDone();
}

في منشئ عرض الاشتراك في هذا الحدث:

ViewModel.FabClickDone += ViewModel_FabClickDone;

وخلق طريقة حيث تريد أن تفعل التمرير الخاص بك

void ViewModel_FabClickDone(Object sender, EventArgs e)
{
    mrecyclerview.SmoothScrollToPosition(somevariable++); // do something.
}

منذ كنت تستخدم مففكروس أود أن أقترح عليك استخدام الأمر، حيث يمكنك استدعاء أونفابكليكدون ()؛

أنا جديدة ل مففكروس مع xamarin.android ضرب قليلا حتى مع السيناريو. لدي القوات المسلحة البوروندية و mvx.recyclerview داخل جزء. لذلك عند النقر على هذا القوات المسلحة البوروندية سيجعل ريسيكلرفيو التمرير من صف واحد.

أي

void onclick(sender object ,eventargs e)
{
   mrecyclerview.SmoothScrollToPosition(somevariable++); // do something.
}

هذا هو كسر نمط مففم، لذلك هناك أي طريقة أو طريقة في مففم الصليب التي يمكن استخدامها للاستماع مرة أخرى إلى عرض من فيوموديل.

fab.click ملزمة مع إكوماند => فيوموديل => فيو => أوبديتسكرول ().

شكرا مقدما.





mvvmcross