using System;
using System.Windows.Input;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace TypeDefinition.Models
{
///
/// 特性データ の ViewModel
///
public partial class CharacteristicsViewModel : INotifyPropertyChanged, INotifyDataErrorInfo
{
private double _X;
///
/// 指標 X
///
[Range(0.0, 1.0)]
public double X
{
get { return _X; }
set
{
_X = value;
RaisePropertyChanged("X");
RaiseErrorsChanged("X");
RaisePropertyChanged("Norm");
RaiseErrorsChanged("Norm");
_Submit.RaiseCanExecuteChanged();
}
}
private double _Y;
///
/// 指標 Y
///
[Range(0.0, 1.0)]
public double Y
{
get { return _Y; }
set
{
_Y = value;
RaisePropertyChanged("Y");
RaiseErrorsChanged("Y");
RaisePropertyChanged("Norm");
RaiseErrorsChanged("Norm");
_Submit.RaiseCanExecuteChanged();
}
}
private double _Z;
///
/// 指標 Z
///
[Range(0.0, 1.0)]
public double Z
{
get { return _Z; }
set
{
_Z = value;
RaisePropertyChanged("Z");
RaiseErrorsChanged("Z");
RaisePropertyChanged("Norm");
RaiseErrorsChanged("Norm");
_Submit.RaiseCanExecuteChanged();
}
}
///
/// 一次ノルム
///
public double Norm
{
get { return X + Y + Z; }
}
DelegateCommand _Submit;
///
/// コマンドバインディング用 Submit コマンド
///
public ICommand SubmitCommand
{
get
{
if (_Submit == null)
_Submit = new DelegateCommand { ExecuteHandler = OnSubmit, CanExecuteHandler = OnSubmitCanExcute };
return _Submit;
}
}
///
/// 変更の適用操作
///
public Action