首页 / C# / c#-以编程方式更改属性设置器逻辑
c#-以编程方式更改属性设置器逻辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-以编程方式更改属性设置器逻辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1704字,纯文字阅读大概需要3分钟。
内容图文
![c#-以编程方式更改属性设置器逻辑](/upload/InfoBanner/zyjiaocheng/660/54ca38dbdc234c00b2613a1f8b87e89f.jpg)
我需要添加属性设置器的逻辑.
例如,我有一个名为“ CurrentTab”的属性:
private WorkspaceViewModel _currentTab;
public WorkspaceViewModel CurrentTab
{
get
{
return _currentTab;
}
set
{
_currentTab = value;
OnPropertyChanged("CurrentTab");
}
}
这一切都很好并且可行,但是我希望能够像这样定义它:
public WorkspaceViewModel CurrentTab { get; set; }
这样,在设置器运行后,系统无需我添加任何特定代码即可自动为属性名称执行OnPropertyChanged()函数.
如何确定哪些属性需要遵循此逻辑是没有问题的,我只需要找到一种方法即可真正做到这一点.
我想简化一下,因为我将拥有很多此类属性,并且希望保持其清洁.
有办法吗?
任何帮助深表感谢!
解决方法:
看一下:Fody.INotifyPropertyChange有一个加载项:github
在构建解决方案时,它正在处理IL代码.
您只需要添加属性即可查看模型:
[ImplementPropertyChanged]
public class Person
{
public string GivenNames { get; set; }
public string FamilyName { get; set; }
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
}
当代码被编译时:
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
string givenNames;
public string GivenNames
{
get { return givenNames; }
set
{
if (value != givenNames)
{
givenNames = value;
OnPropertyChanged("GivenNames");
OnPropertyChanged("FullName");
}
}
}
string familyName;
public string FamilyName
{
get { return familyName; }
set
{
if (value != familyName)
{
familyName = value;
OnPropertyChanged("FamilyName");
OnPropertyChanged("FullName");
}
}
}
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
public virtual void OnPropertyChanged(string propertyName)
{
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
内容总结
以上是互联网集市为您收集整理的c#-以编程方式更改属性设置器逻辑全部内容,希望文章能够帮你解决c#-以编程方式更改属性设置器逻辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。