Control
ViewModel
है। तो ViewModel
View
के के लिए सेट करने के कई तरीके हैं, और यदि आपको अपना ViewModel
मिलता है, लेकिन में Items
संपत्ति नहीं है, तो इसका मतलब है कि आपको कार्य बाध्यकारी प्राप्त करने के लिए ऐसी संपत्ति जोड़नी चाहिए।
इसके अलावा, मैं आपको Debug->Windows->Output
विंडो देखने की सलाह देता हूं जहां आप बाध्यकारी जानकारी देख सकते हैं। यही है कि आप बाध्यकारी त्रुटियों को जान सकते हैं।
निष्कर्ष करने के लिए, मैं स्थापित करने ViewModel
DataContext
करने के तौर-तरीकों को दिखाने के लिए करना चाहते हैं:
पहले दृष्टिकोण:
DataContext सेट करने के लिए कई दृष्टिकोण हैं। ध्यान में रखते हुए:
<Window.DataContext>
<local:MainWindowViewModel/>
</Window.DataContext>
दूसरा दृष्टिकोण। आप App.xaml.cs
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow app = new MainWindow();
ProductViewModel context = new ProductViewModel();
app.DataContext = context;
app.Show();
}
}
तीसरे दृष्टिकोण के OnStartUp()
विधि ओवरराइड करना चाहिए। Windows के में निर्माता:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext=new MainWindowViewModel();
}
}
चौथे दृष्टिकोण। आप DataContext
DependencyInjection
से UnityContainer
या अन्य आईओसी कंटेनर द्वारा सेट कर सकते हैं। लेकिन DependencyInjection
, Prism
और UnityContainer
अन्य प्रश्न हैं और प्रश्न के इस दायरे से निकलते हैं।बस उदाहरण के लिए:
protected override void RegisterTypes()
{
unityContainer.RegisterType<object, ItemControl>("ModuleAUpper");
unityContainer.RegisterType<IViewModelItemControl, ViewModelItemControl>();
unityContainer.RegisterTypeForNavigation<ItemControl>();
}
मुझे नहीं लगता कि इसके लिए एक निश्चित उत्तर है, क्योंकि यह डिजाइन समय पर ज्ञात नहीं है। रन टाइम पर कुछ विकल्प हैं ए) एक अमान्य बाध्यकारी सेट करें और अपना आउटपुट जांचें - यह आपको त्रुटि दे सकता है कि ऑब्जेक्ट पर संपत्ति नहीं मिली है b) ' ', लेकिन अगर क्लाइंट नाम से संबंधित कोई डेटा टेम्पलेट संबद्ध नहीं है या सी) केवल क्लास नाम दिखाएगा, तो यह देखने के लिए कि क्लास नाम के लिए खोज करने का लंबा तरीका –
Tone