नीचे की तरह एक कोड मान लिया जाये कि, मेरे SomeCustomControl मेंकस्टम नियंत्रण में बाइंडेबल कमांड कैसे बनाएं?
public class SomeViewModel{
ICommand ReloadCommand{get...}
ICommand SaveCommand{get..}
}
//SomeView.xaml
<SomeCustomControl Reload="ReloadCommand" Save="SaveCommand" /> //NOT SURE HOW??
//SomeCustomContro.xaml
<SomeCustomControl x:Name="someCustomControl">
<Button Command={Binding ElementName=someCustomControl, Path=Reload />
<Button Command={Binding ElementName=someCustomControl, Path=Save />
</SomeCustomControl>
//SomeCustomControl.xaml.cs
..... //NOT SURE HOW TO ALLOW BINDING TO A ICOMMAND ??
, मैं "XAML में ICommand के बंधन" का समर्थन करने की जरूरत है। मैं समझता हूं कि निर्भरताप्रॉपर्टी इस तरह बांध सकते हैं, लेकिन इस मामले में मुझे आईसीओएमएंड बांधना होगा।
क्या कोई सुझाव दे सकता है कि ऐसा करने का सबसे अच्छा तरीका क्या है? कोई सुझाई गई सामग्री या लिंक का उपयोग किया जाएगा क्योंकि मुझे एक दिशा याद आ रही है।
संपादित करें 1) मैं कुछCustomControl में DataContext SomeView का उपयोग कर सकता हूं। उन दोनों के बीच अधिक तर्क और अलगाव है जो मैं भंग नहीं कर सकता। मुझे अपने कुछ कस्टम कंट्रोल में कहीं भी रीलोड/आईसीओएमंड्स को सहेजने का संदर्भ बनाए रखना चाहिए।
बहुत बहुत धन्यवाद।
तुम्हारा मतलब है कि मैं सीधे एक बाध्य कर सकते हैं एक नियंत्रण में एक संपत्ति के लिए ICommand उदाहरण ?? इसके अलावा, "CreateReloadCommand" के लिए क्या है? यह कमांड उदाहरण ViewModel में बनाया जाएगा, और कुछ कस्टम कंट्रोल को केवल उस इंस्टेंस संदर्भ को स्टोर करने की आवश्यकता है (xaml बाइंडिंग का उपयोग करके)। –
आप जो भी चाहें आईसीओएमएंड प्रकार के मूल्य को बाध्य कर सकते हैं, बाध्यकारी के लिए सबसे सार्थक निर्भरता संपत्ति 'ButtonBase.CommandProperty' है। 'CreateReloadCommand' आपके आदेश को बनाने का एक तरीका है - मैं कमांड निर्माण और प्रारंभिक कोड लिखना नहीं चाहता था। जब मैं अपना उत्तर टाइप कर रहा था, तो आपके कोड में कमांड के लिए विधियां हैं (आपने उन्हें बाद में बदल दिया है)। –