public DetailsParameterViewModel(Parameter model, DeviceDetailsViewModel parent) { Model = model; Name = model.DriverParameter.Description; _parent = parent; IsNotReadOnly = !model.DriverParameter.IsReadOnly && (model.DriverParameter.CanWriteInActive || !parent.IsActive); if (IsNotReadOnly) switch (Model.DriverParameter.ParameterType) { case ParameterType.Enum: IsEnum = true; ParameterEnum = new ObservableCollection<ParameterEnumItem>(Model.DriverParameter.ParameterEnumItems); SelectedEnumItem = ParameterEnum.FirstOrDefault(x => x.Value == model.IntValue); if (SelectedEnumItem == null) SelectedEnumItem = ParameterEnum.FirstOrDefault(); break; case ParameterType.String: IsString = true; StringValue = Model.StringValue; break; case ParameterType.Int: IsInt = true; IntValue = Model.IntValue ?? Model.DriverParameter.IntDefaultValue; if (Model.DriverParameter.IsReadOnly) StringValue = IntValue.ToString(); break; case ParameterType.Double: IsDouble = true; var doubleValue = Model.DoubleValue ?? Model.DriverParameter.DoubleDefaultValue; StringValue = doubleValue.ToString(); break; case ParameterType.Bool: IsBool = true; BoolValue = Model.BoolValue ?? Model.DriverParameter.BoolDefaultValue; break; case ParameterType.DateTime: IsDateTime = true; var dateTime = Model.DateTimeValue ?? DateTime.Now; DateTimeValue = new DateTimePairViewModel(dateTime); TimeSpan = dateTime.TimeOfDay; break; default: break; } else ReadOnlyValue = model.GetStringValue(); }
public ParameterViewModel(Parameter model) { Model = model; Name = Model.DriverParameter.Description; Value = Model.GetStringValue(); }