Nts*_*alt 0 .net c# inotifypropertychanged
有没有办法在C#for .NET 4.0中字符串化成员名称,就像在C中使用#define str(s) #s宏一样?
public Double MyDouble
{
get { return _MyDouble;}
set
{
_MyDouble = value;
RaisePropertyChanged("MyDouble");
// The below item would refactor correctly if C# had a stringify pre-processor
// RaisePropertyChanged(str(MyDouble));
}
}
private Double _MyDouble;
Run Code Online (Sandbox Code Playgroud)
如果我已Search in Strings禁用或打破完全不相关的字符串(如果已启用),则重新分解会中断raise属性更改事件.有时我不会注意到UI元素不再响应更改.
不,不幸的是.目前,您必须使用PostSharp或NotifyPropertyWeaver之类的东西来可靠地执行此操作.
请注意,在C#5中,您将能够执行此操作:
public void RaisePropertyChanged([CallerMemberName] string member = "")
{
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它:
public Double MyDouble
{
get { return _MyDouble;}
set
{
_MyDouble = value;
RaisePropertyChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
C#5编译器会自动填写可选参数.
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |