मैं WPF आधारित विंडो को गतिशील रूप से (रनटाइम पर कोड का उपयोग करके) में WPF आधारित उपयोगकर्ता नियंत्रण कैसे लोड कर सकता हूं?डब्ल्यूपीएफ: मैं गतिशील रूप से उपयोगकर्ता नियंत्रण कैसे लोड करूं?
उत्तर
मैं अत्यधिक Prism पर एक नज़र रखने की अनुशंसा करता हूं, क्योंकि समग्र उपयोगकर्ता इंटरफेस यह है कि यह क्या है। हालांकि, चूंकि आपको अपने पूरे एप्लिकेशन को दोबारा करने की आवश्यकता होगी, इसलिए मैं सीधे आपके प्रश्न का उत्तर दूंगा।
यदि आप एक कंटेनर में एकल उपयोगकर्ता नियंत्रण चाहते हैं, तो अपने XAML में ContentControl डालें और फिर सामग्री प्रॉपर्टी सेट करें।
contentControlInstance.Content = new CustomUserControl();
आप एक सूची में एक से अधिक नियंत्रण चाहते हैं, तो एक ItemsControl का उपयोग करें और ItemsSource संपत्ति के लिए एक ObservableCollection <> आवंटित: यदि आप एक दृश्य के मॉडल का उपयोग कर रहे हैं, तो आप दृश्य मॉडल पर एक FrameworkElement संपत्ति के लिए सामग्री के लिए बाध्य कर सकता है । यदि आप एक व्यू मॉडल का उपयोग कर रहे हैं, तो आप व्यू मॉडल पर एक ऑब्जर्जेबल कोलेक्शन प्रॉपर्टी में आइटम्ससोर्स को बाध्य कर सकते हैं।
तो फिर तुम सिर्फ जोड़ सकते हैं/कि ObservableCollection से दृश्य हटाने:
private ObservableCollection<FrameworkElement> views =
new ObservableCollection<FrameworkElement>();
private void Initialize()
{
itemsControl.ItemsSource = views;
}
private void AddView(FrameworkElement frameworkElement)
{
views.Add(frameworkElement);
}
कई नियंत्रण जोड़ने के लिए आप कंटेनर की जरूरत है।
मान लीजिए आप एक StackPanel कंटेनर "myStack"
<Window ..>
<StackPanel Name="MyStack" />
</Window>
आप गतिशील रूप से नियंत्रण बना सकते हैं और कंटेनर में जोड़ सकते हैं की है। नीचे
void AddButtons()
{
Button B1=new Button(),B2=new Button(), B3=new Button();
B1.Content="Hello";
B2.Content="First";
B3.content="Application";
// Now you can set more properties like height, width, margin etc...
MyStack.Children.Add(B1);
MyStack.Children.Add(B2);
MyStack.Children.Add(B2);
}
कोड देखें या बंधन का उपयोग करें। यहां एक वास्तव में कच्चा उदाहरण दिया गया है जिसमें सामग्री कंट्रोल और बाइंडिंग (जो कि प्रिज्म या कैलिबर्न माइक्रो की तरह टूलकिट है) का उपयोग करके एक WPF विंडो में अलग-अलग WPF नियंत्रणों को दिखाया जा सकता है।
XAML:
<UserControl x:Class="ViewA">
...
<UserControl/>
<UserControl x:Class="ViewB">
...
<UserControl/>
कोड:
void ShowViewModelDialog (object viewModel)
{
var host = new MyViewHost();
FrameworkElement control = null;
string viewModelName = viewModel.GetType().Name;
switch (viewModelName)
{
case ("ViewModelA"):
control = new ViewA();
break;
case ("ViewModelB"):
control = new ViewB();
break;
default:
control = new TextBlock {Text = String.Format ("No view for {0}", viewModelName);
break;
}
if (control!=null) control.DataContext = viewModel;
host.DataContext = control;
host.Show(); // Host window will show either ViewA, ViewB, or TextBlock.
}
- 1. उपयोगकर्ता नियंत्रण गतिशील रूप से
- 2. उपयोगकर्ता नियंत्रण गतिशील रूप से पोस्टबैक
- 3. मैं गतिशील रूप से जावास्क्रिप्ट फ़ाइल कैसे लोड करूं?
- 4. उपयोगकर्ता नियंत्रण में नियंत्रण जोड़ना गतिशील रूप से
- 5. नियंत्रण गतिशील रूप से बनाए गए उपयोगकर्ता नियंत्रण
- 6. डब्ल्यूपीएफ उपयोगकर्ता नियंत्रण
- 7. डब्ल्यूपीएफ .NET4.0 उपयोगकर्ता नियंत्रण
- 8. डब्ल्यूपीएफ उपयोगकर्ता नियंत्रण मालिक
- 9. मैं WPF में गतिशील रूप से ItemTemplate कैसे सेट करूं?
- 10. पोस्टबैक के बाद संपत्ति शून्य - गतिशील रूप से लोड नियंत्रण
- 11. मैं उपयोगकर्ता नियंत्रण से कस्टम ईवेंट कैसे फायर करूं?
- 12. डब्ल्यूपीएफ: उपयोगकर्ता को एनिमेट करना लोड पर नियंत्रण
- 13. गतिशील रूप से नियंत्रण जावास्क्रिप्ट Asp.net सी #
- 14. डब्ल्यूपीएफ उपयोगकर्ता नियंत्रण का निपटान
- 15. सिल्वरलाइट छवि: लोड यूआरएल गतिशील रूप से?
- 16. मैं उपयोगकर्ता नियंत्रण में सभी नियंत्रणों को गतिशील रूप से कैसे साफ़ कर सकता हूं?
- 17. क्या मैं रचनाकारों का उपयोग कर गतिशील रूप से उपयोगकर्ता नियंत्रण बना सकता हूं?
- 18. मैं संरचना क्षेत्रों को गतिशील रूप से कैसे एक्सेस करूं?
- 19. मैं गतिशील रूप से किसी वस्तु का संदर्भ कैसे करूं?
- 20. जावा से अपने क्लासपाथ के बाहर से क्लोजर स्क्रिप्ट को गतिशील रूप से कैसे लोड करूं?
- 21. मैं वेबकिट (सफारी/क्रोम) में गतिशील रूप से सीएसएस नियम कैसे लोड करूं?
- 22. Log4perl: मैं रनटाइम पर गतिशील रूप से परिशिष्ट कैसे लोड करूं?
- 23. मैं गतिशील रूप से Google Analytics जावास्क्रिप्ट को कैसे लोड करूं?
- 24. मैं गतिशील रूप से असेंबली कैसे लोड करूं एएसपी में डिस्क पर नहीं। नेट वेब एप्लिकेशन?
- 25. गतिशील रूप से नियंत्रण की सूची में नियंत्रण जोड़ना
- 26. एएससीएक्स नियंत्रण लोड हो रहा है गतिशील रूप से (कोड के माध्यम से)
- 27. गतिशील रूप से लोड किए गए लिंक
- 28. मैं WinForms ऐप में उपयोगकर्ता-नियंत्रण पर उप-नियंत्रण से ईवेंट कैसे प्राप्त करूं?
- 29. गतिशील रूप से लोड की गई लाइब्रेरी
- 30. मैं अपनी लाइब्रेरी को गतिशील रूप से कैसे लोड करूं, और इसमें एक विधि का आह्वान कैसे करूं?