Force value changed and invalidate implementation in property adapter.

This commit is contained in:
2023-12-25 14:21:37 +08:00
parent c66b7da63b
commit a532a9f4c1
2 changed files with 8 additions and 5 deletions

View File

@@ -14,6 +14,7 @@ namespace Cryville.Crtr.Config {
object GetValue(); object GetValue();
void SetValue(object value); void SetValue(object value);
event Action ValueChanged; event Action ValueChanged;
void Invalidate();
object MapValue(object value); object MapValue(object value);
bool SetMapped { get; } bool SetMapped { get; }
object MapValueInverse(object value); object MapValueInverse(object value);
@@ -38,7 +39,10 @@ namespace Cryville.Crtr.Config {
public object GetValue() { return _prop.GetValue(_target, null); } public object GetValue() { return _prop.GetValue(_target, null); }
public void SetValue(object value) { _prop.SetValue(_target, value, null); } public void SetValue(object value) { _prop.SetValue(_target, value, null); }
public event Action ValueChanged { add { } remove { } } public event Action ValueChanged;
public void Invalidate() {
ValueChanged?.Invoke();
}
readonly double _precision; readonly double _precision;
readonly double _step; readonly double _step;

View File

@@ -30,7 +30,7 @@ namespace Cryville.Crtr.Config {
public void SetValue(string key, object value) { public void SetValue(string key, object value) {
_store[key] = value; _store[key] = value;
foreach (var prop in _props) { foreach (var prop in _props) {
prop.OnValueChanged(); prop.Invalidate();
} }
} }
} }
@@ -79,9 +79,8 @@ namespace Cryville.Crtr.Config {
} }
public event Action ValueChanged; public event Action ValueChanged;
public void OnValueChanged() { public void Invalidate() {
var ev = ValueChanged; ValueChanged?.Invoke();
if (ev != null) ev();
} }
public bool SetMapped { get { return false; } } public bool SetMapped { get { return false; } }