public static OptionalAccessor OfType(Type type) { lock (Accessors) { if (Accessors.TryGetValue(type, out var accessor)) { return(accessor); } return(Accessors[type] = new OptionalAccessor(type)); } }
public Adapter([NotNull] IParameterDescriptor parameter, [NotNull] OptionalAccessor accessor, [NotNull] Grid container, [NotNull] CheckBox checkBox, [NotNull] ParameterViewModel wrapped) { _parameter = parameter ?? throw new ArgumentNullException(nameof(parameter)); _accessor = accessor ?? throw new ArgumentNullException(nameof(accessor)); _container = container ?? throw new ArgumentNullException(nameof(container)); _checkBox = checkBox ?? throw new ArgumentNullException(nameof(checkBox)); _wrapped = wrapped ?? throw new ArgumentNullException(nameof(wrapped)); _checkBox.Checked += CheckBox_OnValueChanged; _checkBox.Unchecked += CheckBox_OnValueChanged; _wrapped.ValueChanged += WrappedParameter_OnValueChanged; }