2011-06-13 11 views
5

मैं वर्तमान में कैलिबर्न में दृश्य संरचना के साथ प्रयोग कर रहा हूं। माइक्रो। मेरे पास एक कामकाजी उदाहरण है जहां मेरे पास "व्यू.मोडेल" संलग्न संपत्ति मार्ग के माध्यम से मेरे मुख्य खोल में इंजेक्शन वाले एकाधिक उपयोगकर्ता नियंत्रण आधारित विचार हैं। अब तक सब ठीक है।Caliburn.Micro: प्रोग्राम बनाएं और बाध्य देखें प्रोग्रामेटिक

मेरे आवेदन में उचित रूप से मैं कुछ WPF के साथ मुख्य रूप से WinForms के मिश्रित वातावरण के साथ काम कर रहा हूं, इसलिए कैलिबर के प्रबंधन के लिए कोई WPF "खोल" नहीं है। मैं मांग पर अपने विचार बनाने में सक्षम होना चाहता हूं और उन्हें अपने WinForms ऐप में प्लेसहोल्डर्स में जोड़ना चाहता हूं।

मैं जानना चाहता हूं कि मैं कैलिबर्न का उपयोग करके प्रोग्राम बनाने के लिए एक दृश्य (जो उपयोगकर्ता नियंत्रण में उपयोगकर्ता नियंत्रण होगा) के बारे में जानना चाहता हूं ताकि सभी सम्मेलन, मॉडल बाइंडिंग और उप-दृश्य इंजेक्शन किया जा सके।

उत्तर

13

कैलिबर्न ViewModelBinder आपके पास एक दृश्य उदाहरण और संबंधित दृश्य-मॉडल होने के बाद हैंडल को क्रैंक करने के लिए उपयोग किया जा सकता है। कॉलिंग Bind निराकरण इंजेक्शन विचारों और सम्मेलन आधारित बाध्यकारी, लागू होता है आदि: BootstrapperBase.DisplayRootViewFor से

SomeCompositionView view = new SomeCompositionView(); 

    ISomeCompositionViewModel viewModel = IoC.Get<ISomeCompositionViewModel>(); 

    ViewModelBinder.Bind(viewModel, view, null); 

    ElementHost.Child = view; 
+1

एक बात हालांकि, इसे कहते नहीं करता प्रारंभ/सक्रिय/निष्क्रिय करें यदि आप इसे इस तरह से करना । – kamranicus

10

कोड स्निपेट:

var viewModel = IoC.GetInstance(viewModelType, null); 
var view = ViewLocator.LocateForModel(viewModel, null, null); 

ViewModelBinder.Bind(viewModel, view, null); 

var activator = viewModel as IActivate; 
if(activator != null) 
    activator.Activate(); 
संबंधित मुद्दे