public static bool SetValue(ItemModelBase <TItem> model, TValue value, string propertyPath, string propertyName) { if (!ValueSetter <TValue> ._setters.TryGetValue(propertyName, out Func <ItemModelBase <TItem>, TValue, bool>?setter)) { ValueSetter <TValue> ._setters.Add(propertyName, setter = ValueSetter <TValue> .CreateSetter(propertyPath, propertyName)); } return(setter(model, value)); }