कैलिबर्न की सम्मेलन प्रणाली केवल डब्ल्यूपीएफ नियंत्रणों के लिए कॉन्फ़िगर की गई है जो कि आउट ऑफ़ द बॉक्स हैं। जब यह RabTabControl को देखता है, तो यह इसे पहचान नहीं पाता है, इसलिए इसने कक्षा के पदानुक्रम की खोज की जो कुछ पहचानता है उसे ढूंढता है। इस मामले में, यह शायद चयनकर्ता या आइटम नियंत्रण पर मेल खाता है। यही कारण है कि सम्मेलनों का आंशिक आवेदन है। आप जो चाहते हैं उसे ठीक करने के लिए, आपको RadTabControl के लिए कन्वेंशन मैनेजर में एक सम्मेलन जोड़ना होगा जो वास्तव में आप चाहते हैं। यहाँ कैसे TabControl सम्मेलन परिभाषित किया जाता है:
AddElementConvention<TabControl>(TabControl.ItemsSourceProperty, "ItemsSource", "SelectionChanged")
.ApplyBinding = (viewModelType, path, property, element, convention) => {
if(!SetBinding(viewModelType, path, property, element, convention))
return;
var tabControl = (TabControl)element;
if(tabControl.ContentTemplate == null && tabControl.ContentTemplateSelector == null && property.PropertyType.IsGenericType) {
var itemType = property.PropertyType.GetGenericArguments().First();
if(!itemType.IsValueType && !typeof(string).IsAssignableFrom(itemType))
tabControl.ContentTemplate = DefaultItemTemplate;
}
ConfigureSelectedItem(element, Selector.SelectedItemProperty, viewModelType, path);
if(string.IsNullOrEmpty(tabControl.DisplayMemberPath))
ApplyHeaderTemplate(tabControl, TabControl.ItemTemplateProperty, viewModelType);
};
मुझे लगता है कि आप कोड लेने के लिए सक्षम होना चाहिए और कुछ मामूली संशोधनों के साथ, यह आप क्या चाहते हैं करते हैं। ध्यान दें कि उपरोक्त कोड में बुलाए गए कुछ तरीकों वास्तव में कन्वेंशन मैनेजर पर मौजूद हैं, इसलिए आपको इसे ठीक करने की आवश्यकता होगी। आपको अपने बूटस्ट्रैपर के कॉन्फ़िगर ओवरराइड में अपना सम्मेलन जोड़ना चाहिए। इसके अतिरिक्त नमूने के लिए, WP7 टेम्पलेट के बूटस्ट्रैपर पर एक नज़र डालें, जो पिवोट और पैनारमा के लिए कस्टम सम्मेलनों को परिभाषित करता है।
यह चाल किया था। आपका बहुत बहुत धन्यवाद। – Dan