效果图如下:
viewmodel
using PropertyChanged;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.Windows.Controls;
namespace _1_5GraphicsWpf.ViewModel
{
//颜色选择列表 数据模板
[AddINotifyPropertyChangedInterface]
public class VMColor : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int id;
public int ID
{
get;
set;
}
private string pcolor;
public string PColor
{
get;
set;
}
}
//样式选择列表 数据模板
[AddINotifyPropertyChangedInterface]
public class VMStyle : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int id;
public int ID
{
get ;
set;
}
private string pstyle;
public string PStyle
{
get;
set;
}
}
//一些全局变量设置 数据模板
[AddINotifyPropertyChangedInterface]
public class Global_Window1 : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
//int Combo_ColorIndex;
//int Combo_StyleIndex;
//private int combo_ColorIndex;
public int Combo_ColorIndex
{
get ;
set;
}
//private int combo_StyleIndex;
public int Combo_StyleIndex
{
get ;
set;
}
//private double thickness;
public double Thickness
{
get ;
set;
}
//private Collection<ValidationRule> datavalidationRules;
//public Collection<ValidationRule> dataValidationRules { get; set; }
//private Collection<ValidationRule> rangevalidationRules;
//public Collection<ValidationRule> rangeValidationRules { get; set; }
}
}
数据绑定中的数据校验
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
namespace _1_5GraphicsWpf.ControlValidationRule
{
public class RangeValidationRule : ValidationRule
{
private int min=0 ;
public int Min
{
get { return min ; }
set { min= value; }
}
private int max = 100;
public int Max
{
get { return max; }
set { max = value; }
}
public RangeValidationRule() : base() { }
//public RangeValidationRule(int a ,int b ):base()
//{
// min = a;
// max = b;
//}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
double d = 0;
if (double.TryParse(value.ToString(),out d))
{
if (d>=min&&d<=max)
{