我有一个viewmodel具有2个相同类型的属性(布尔)。我喜欢有一个函数将其中一个属性设置为布尔值。 假设您有一个IsReadonly属性。c#修改一个通用的属性
public void SetReadOnly(MyViewModel vm, bool newVal)
{
vm.IsReadOnly = newVal;
}
现在我想让它更通用,并有以下两种功能:
public void SetBooleanProperty(MyViewModel vm, bool newVal, ?bool? myProperty)
{
vm.myProperty = newVal; // sure this is an error, myProperty doesn't exist in the viewmodel. But that shows the way i like to have.
}
我开始这个方法:
public void SetBooleanproperty<TProp>(MyViewModel vm, bool newVal, TProp myProperty)
{
vm.??? = newVal;
}
我不喜欢用函数GetPropertyByName(“IsReadonly”),我认为它可以从.Net的反射类中的某处获得。 原因:如果另一名开发人员重构项目并重命名IsReadonly,则字符串不会更新。有没有解决这个问题的方法?
你在哪里决定要设置哪个属性值? – Dilshod 2013-04-25 14:49:33
当用户选中/取消选中按钮时,deoendency属性的回调将更改viewmodel属性。出于以下几个原因,我遍历了一个视图模型树,并且对两个布尔值都有一个函数。而已。从维修视图和清晰度看, – deafjeff 2013-04-25 14:56:55