के साथ एक बटन को कैसे सक्षम करें मैं एमवीवीएम का उपयोग करके डब्ल्यूपीएफ में एक एप्लीकेशन विकसित कर रहा हूं, लेकिन मैं आईसीओएमएंड ऑब्जेक्ट्स के साथ फंस गया हूं।अपने कैनएक्सक्यूट विधि
मैं एक खिड़कियों जो कुछ बटन होते है, इसलिए, मैं नीचे के रूप में XAML में उनके संबंधित ICommand करने के लिए उन्हें बाध्य: निम्नलिखित
<Button Command="{Binding DoSomethingCommand}" Content="Do Something" />
फिर, मेरे विचार-मॉडल वर्ग में मैं लिखा है:
public class MyViewModel : ObservableObject
{
private bool isDoSomethingButtonEnabled = false;
....
public ICommand DoSomethingCommand
{
get;
private set;
}
....
....
public MyViewModel()
{
DoSomethingCommand = new DelegateCommand<String>(this.OnDoSomething, this.CanDoSomething);
}
private void OnDoSomething(String arg)
{
}
private bool CanDoSomething(String arg)
{
return isDoSomethingButtonEnabled;
}
....
}
इसलिए, चूंकि मुझे आवश्यकता है कि मेरा बटन पहली बार विंडो खुलने में सक्षम नहीं है, इसलिए मैंने अपना चर isDoSomethingButtonEnabled
false
पर सेट किया है। और यह काम करता है, बटन शुरुआत में अक्षम है, लेकिन मेरी समस्या यह है कि जब मैं रन टाइम पर परिवर्तनीय isDoSomethingButtonEnabled
true
बदलता हूं तो मेरा बटन अभी भी अक्षम है।
मैं भी true
चर isDoSomethingButtonEnabled
बदलने, DoSomethingCommand.CanExecute()
का परिणाम मुद्रण के बाद कुछ परीक्षण किया है और यह "सही" से पता चलता!
तो, मेरे बटन को सक्षम करने के लिए मुझे क्या करना चाहिए ??
अग्रिम
MVVM एक पैटर्न है, यह DelegateCommand की तरह किसी भी विशिष्ट वर्गों की आवश्यकता नहीं है। क्या आप PRISM का उपयोग कर रहे हैं? –
हाँ, मैं हूं। असल में मुझे इसका उपयोग करना होगा – Dante