在我的模型中,我有以下属性
private string somestring;
public string SomeString
{
get
{
return somestring;
}
set
{
SetField(ref somestring, value, "SomeString");
}
}
在我的视图模型中,我有一个 ObservableCollection 代表选定的对象
private ObservableCollection<Models.model> selectedObjects
public ObservableCollection<Models.model> SelectedObjects
{
get
{
return selectedObjects;
}
set
{
SetField(ref selectedObjects, value, "SelectedObjects");
}
}
假设我想为集合中的每个对象设置相同的属性值,只要该属性值在 currentObject 中发生变化,所以我在我的视图模型中想出了这个
private void SetMultiplePropertyValues<T>(string propName, object value)
{
if(!SelectedObjects.Contains(currentObject)) return;
var p = typeof(T).GetProperty(propName);
foreach (var obj in SelectedObjects)
{
p.SetValue(obj, value, null);
}
}
有没有比在属性更改时调用该函数更方便的方法