जोश स्मिथ के RelayCommand, उदाहरण के सबसे मैंने देखा है उपयोग आलसी जैसे आरंभीकरण उपयोग करते समय:रिलेकॉमैंड आमतौर पर आलसी प्रारंभिकरण का उपयोग क्यों करते हैं?
public class ViewModel
{
private ICommand myCommand;
public ICommand MyCommand
{
get
{
if (myCommand == null)
{
myCommand = new RelayCommand(p => DoSomething());
}
return myCommand;
}
}
// ... stuff ...
}
बल्कि निर्माता में RelayCommand बनाने, इस तरह से:
public class ViewModel
{
public ViewModel()
{
MyCommand = new RelayCommand(p => DoSomething());
}
public ICommand MyCommand
{
get;
private set;
}
// ... stuff ...
}
क्या है आलसी शुरुआत का उपयोग करने का लाभ यहां? बाध्यकारी स्थापित करते समय इसे संपत्ति प्राप्त करना होगा, इसलिए मुझे इस विधि का उपयोग कन्स्ट्रक्टर में सेटिंग्स की चीजों पर करने का कोई कारण नहीं दिख सकता है।
क्या मुझे यहां कुछ याद आ रही है?
आप सही हैं। RoutedCommands की आलसी शुरुआत कोई समझ नहीं लेती क्योंकि वे बहुत हल्के होते हैं और जैसे ही दृश्य इसे बाध्य करता है, वैसे भी वे लोड होते हैं। – jbe