2013-06-26 8 views
6

में 'पैरेंट' व्यूमोडेल पर लौटने वाले मान एक व्यूमोडेल से दूसरे पैरामीटर को पार करने की अनुशंसित विधि क्या है, इसे संशोधित करने के बाद इसे मूल व्यूमोडेल पर वापस कर दिया जाए?MvvmCross

विचारों यानी ShowViewModel (नया {paramX = valueY}) में मूल्यों को पारित करने के बारे में बहुत कुछ लिखा गया है, हालांकि मैं प्रदर्शित 'submodel' के किसी भी कामकाजी उदाहरण को माता-पिता को वापस मूल्य वापस करने में असमर्थ हूं कुछ विधि में बंद/खारिज कर दिया गया है।

एकमात्र नमूना जो मैंने पाया है, यह http://www.gregshackles.com/2012/11/returning-results-from-view-models-in-mvvmcross/ है, हालांकि यह कोड नए वर्तमान v3 mvx पर काम नहीं कर रहा है, जो व्यूटाइम प्रकार को हल करने में त्रुटि के साथ रनटाइम में विफल रहता है, संभवतः क्योंकि एमवीएक्स में प्रतिबिंब subtyping या जेनेरिक के कारण प्रकार की पहचान/पंजीकरण करने में सक्षम नहीं है।

उत्तर

3

मेरे प्रश्न से लिंक के लेखक के साथ चर्चा करने के बाद, कोड एक मामूली चिमटा के साथ काम करता है और एमवीवीएमक्रॉस सम्मेलन के अनुरूप मेरे व्यू क्लास के नाम पर सुधार करता है।

मेरा विचार गलत तरीके से SomethingViewController नामक SomiewView के नाम पर किया गया था।

public abstract class SubViewModelBase<TResult> : ViewModelBase 
{ 
    protected string MessageId { get; private set; } 

    protected SubViewModelBase(string messageId) 
    { 
     MessageId = messageId; 
    } 
    .... 
} 

लिए:

public abstract class SubViewModelBase<TResult> : ViewModelBase 
{ 
    protected string MessageId { get; private set; } 

    public virtual void Init(string messageId){ 
     this.MessageId = messageId; 
    } 
} 

और निश्चित रूप से अपनी submodels

का उपयोग

ग्रेग के कोड को परिवर्तन वर्तमान MVX v3 codebase पर काम करने से अपने नमूना बदलने के लिए है

public abstract class MySomeModel : SubViewModelBase<YourReturnType> 
{ 
    public override void Init(string messageId, other.. parameters..){ 
     base.Init(messageId); 
     .. your other parameters init here.. 
    } 
} 
+0

क्या यह नहीं माना जाता है कि अभिभावक दृश्य मॉडल में बच्चे का संदर्भ है? यदि नहीं, तो संदेश आईडी को पास करने के लिए कोई इनिट विधि का उपयोग कैसे करता है? –

+0

कोई बात नहीं। इस संबंधित पोस्ट को मिला: http://slodge.blogspot.co.uk/2013/03/v3-new-viewmodel-lifecycle.html –

संबंधित मुद्दे