コード例 #1
0
        /// <summary> Registers a read-only view model property.
        /// </summary>
        /// <param name="name">The name of the property.</param>
        /// <param name="propertyType">Type of the property.</param>
        /// <param name="ownerType">Type of the owner.</param>
        /// <param name="typeMetadata">The type metadata.</param>
        /// <param name="validateValueCallback">The validate value callback.</param>
        /// <returns></returns>
        /// <remarks></remarks>
        public static ViewModelPropertyKey RegisterReadOnly(string name, Type propertyType, Type ownerType, ViewModelMetadata typeMetadata, ValidateValueCallback validateValueCallback)
        {
            var property = new ModelProperty(name, propertyType, ownerType, typeMetadata, validateValueCallback, true);
            var key      = new ViewModelPropertyKey(property);

            PropertyCache.Register(property);
            return(key);
        }
コード例 #2
0
        /// <summary> Sets the local value of a read-only dependency property, specified by the System.Windows.DependencyPropertyKey identifier of the dependency property.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key">The <see cref="ViewModelPropertyKey"/> identifier of the property to set.</param>
        /// <param name="value"> The new local value.</param>
        public void SetValue <T>(ViewModelPropertyKey key, T value)
        {
            var prevValue = GetValue <T>(key.ViewModelProperty);

            if (_propertyValues.ContainsKey(key))
            {
                _propertyValues[key] = value;
            }
            else
            {
                _propertyValues.Add(key, value);
            }
            if (!Equals(prevValue, value))
            {
                OnPropertyChanged(key.ViewModelProperty);
            }
        }