1

カウンターに基づいて無効/有効にしたい2つのボタンがあります

ここに私のカウンターがあります

private int _stepCounter = 0;
        public int StepCounter
        {
            get { return _stepCounter; }
            set{_stepCounter=value; OnPropertyChanged("StepCounter");}
        }
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

私は次の IValueConverter を書きました

 [ValueConversion(typeof(int), typeof(bool))]
    class inttobool : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture, string ButtonName)
        {
            int stepcount = (int)value;
            if (stepcount == 0 && ButtonName == "PreviousStepButton")
            {
                return false;
            }
            else if (stepcount == 5 && ButtonName == "NextStepButton")
            {
                return false;
            }
            else
            {
                return true;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture, string Buttonname)
        {
            return null;
        }
    }

私のボタンは次のようになります

<Button Name="NextStepButton" Content="Next Step" Click="NextStepButton_Click" />
<Button Name="PreviousStepButton" Content="PreviousStep"click="PreviousStepButton_Click" />

NextStepButton_Clickイベントはカウンターを 1 つ増やします イベントはカウンターを 1 つ PreviousStepButton_Click減らします

mvvm を学習しようとしていますが、クリックしたボタンの名前をコンバーターに送信するにはどうすればよいですか?

XAML の IsEnabled プロパティのバインディング ステートメントはどのようにすべきでしょうか?

NextStepButtonカウンターが 5 になったときに無効にする必要があり、カウンターが 0 になったときに無効にする必要がありますPreviousStep。それ以外の場合は、両方が有効になっています。

4

2 に答える 2