में जनता के बजाय बाध्यकारी संपत्ति आंतरिक बनाना I MVVM का उपयोग करके कुछ अलग-अलग चीजों को आजमा रहा हूं। हमारे व्यू मॉडेल गुणों में जो देखने के लिए बाध्य हैं सार्वजनिक हैं। मैं एक बटन बाध्यकारी का उदाहरण ले रहा हूँ। यहां एक साधारण नमूना है।व्यूमोडेल
View.xaml:
<Button Content="Test Button" Command="{Binding TestButtonCommand}" />
ViewModel.cs
private ICommand _testButtonCommand;
public ICommand TestButtonCommand
{
get { return _testButtonCommand?? (_testButtonCommand= new RelayCommand(SomeMethod)); }
}
यहाँ मेरे सवाल है कि हम TestButtonCommand
आंतरिक बजाय जनता के कर सकते हैं? आंतरिक साधन यह वर्तमान परियोजना के लिए सुलभ है, इसलिए उन्हें ऐसा करने में कोई समस्या नहीं होनी चाहिए? लेकिन जब मैंने ऐसा करने की कोशिश की तो यह काम नहीं किया। गेटटर में ब्रेकपॉइंट जोड़ना हिट नहीं हुआ था। तो हम इसे आंतरिक क्यों नहीं बना सकते हैं।
यहां एमएसडीएन का लिंक है।
http://msdn.microsoft.com/en-us/library/ms743643.aspx
गुण आप एक बाध्यकारी के लिए के रूप में बाध्यकारी स्रोत गुणों का उपयोग अपने वर्ग के सार्वजनिक गुण होना चाहिए। स्पष्ट रूप से परिभाषित इंटरफ़ेस गुणों को बाध्यकारी उद्देश्यों के लिए उपयोग नहीं किया जा सकता है, न ही संरक्षित, निजी, आंतरिक, या आभासी गुणों का उपयोग किया जा सकता है जिनके आधारभूत कार्यान्वयन नहीं है।
हम ऐसा क्यों नहीं कर सकते? एक ही प्रोजेक्ट में काम करते समय आंतरिक पहुंच के मामले में सार्वजनिक के समान ही है। तो हम यहां आंतरिक का उपयोग क्यों नहीं कर सकते हैं। एक कारण होना चाहिए कि ये सार्वजनिक होना चाहिए, और मैं उस कारण की तलाश में हूं।
internal ICommand TestButtonCommand { ...... }
क्योंकि [आप केवल सार्वजनिक गुण, उप-गुण और अनुक्रमणिका या किसी भी सीएलआर ऑब्जेक्ट से जुड़ सकते हैं] (http://msdn.microsoft.com/en-us/library/ms743643.aspx)। डब्ल्यूपीएफ टीम इस तरह के डिजाइन निर्णय के साथ क्यों गई? मुझे नहीं पता, आपको उनसे पूछना चाहिए :) –
इसका माइक्रोसॉफ्ट, इसलिए हम कुछ भी नहीं कर सकते हैं, –