मैं MVVM लाइट का उपयोग कर रहा है और मैं अपने रिले आदेश पूरी तरह से काम कर रहा है, मैं सिर्फ पढ़ा है कि मैं CanExecuteChanged
और CanExecute
को लागू किया जाना चाहिए। हालांकि मैं एक अच्छा उदाहरण खोजने में असमर्थ हूं।CanExecute और CanExecuteChanged, मुझे इन्हें रिलेकॉमैंड के साथ कार्यान्वित करना होगा?
किसी को भी कैसे इन लागू करने के लिए का एक अच्छा उदाहरण है।
CanExecute झूठी वापस जाने के लिए जब यह निष्पादित नहीं किया जा सकता है की जरूरत है, लेकिन सिर्फ बटन disbale नहीं होगा ??
जब मैं CanExecuteChanged
पर अमल करते हैं?
किसी के पास प्रत्येक का उपयोग करने के लिए कोई अच्छा उदाहरण है, मेरा कोड this blog पोस्ट राज्यों के बिना काम करता है कि मुझे इन वस्तुओं को लागू करना चाहिए।
मैं थोड़ा उलझन में हूं, जैसा कि मैंने कहा था कि मैंने सोचा था कि मैं सिर्फ Enabled
संपत्ति या व्यूमोडेल में किसी संपत्ति के लिए कुछ बांध दूंगा ताकि मैं बटन या इसी तरह के नियंत्रण को अक्षम कर सकूं?
समझ में किसी भी मदद वास्तव में आभारी होंगे।
संपादित
यह वही है मैं अब अपने काम करने के लिए है ... लेकिन बटन शारीरिक रूप से केवल commmand अक्षम नहीं है नहीं चलता है के रूप में मैं झूठे लौट रहा हूं। मैं निर्माता को चलाने के लिए मजबूर करने के लिए RaiseCanExecuteChanged में CanExecuteMe बोल रहा हूँ ...
यह मेरा viewmodel
this.Page2Command = new RelayCommand(() => this.GoToPage2(),() => CanExecuteMe);
CanExecuteMe = false;
की मेरी कंसट्रक्टर में चलता है और यहाँ मेरे कोड के बाकी है, मैं एक उदाहरण से ले लिया ।
private bool _canIncrement = true;
public bool CanExecuteMe
{
get
{
return _canIncrement;
}
set
{
if (_canIncrement == value)
{
return;
}
_canIncrement = value;
// Update bindings, no broadcast
//RaisePropertyChanged(CanIncrementPropertyName);
Page2Command.RaiseCanExecuteChanged();
}
}
public RelayCommand Page2Command
{
get;
private set;
}
private object GoToPage2()
{
System.Windows.MessageBox.Show("Navigate to Page 2!");
return null;
}
और यहाँ मेरी XAML
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="31,77,0,0" x:Name="button1" VerticalAlignment="Top" Width="75" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding Page2Command, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
धन्यवाद, ठीक है, मैंने यह काम किया है और यकीन है कि बटन निष्पादित नहीं होता है क्योंकि यह झूठा लौटाता है। लेकिन बटन "अभी भी" सक्षम है ... मैं अपने प्रश्न के साथ अपना प्रश्न अपडेट करूंगा .. शायद मैं कुछ गलत कर रहा हूं। – Martin
ठीक सवाल अपडेट किया गया, उम्मीद है कि – Martin
समझ में आता है ठीक है, यह एक संपत्ति है जिसे MustToggleIsEnabledValue कहा जाता है जिसे मुझे सेट करना होगा .. मैं इस प्रश्न को उत्तर के रूप में उत्तर दूंगा क्योंकि इस उत्तर ने मेरे प्रश्न का उत्तर दिया है। – Martin