我是C#编程的新手.我正在构建一些类并在教程中找到不同的示例.我还认为,为了保持WPF表单显示正确的值,您需要实现INotify.
所以我的问题是两个部分.我是否真的需要通知并在属性更改时触发自定义方法?
这是定义我班级的最佳系统吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
namespace LakesideQTS
{
public class Machine : BaseModel, IDataErrorInfo
{
private int _MachineID;
private string _Description;
public int MachineID
{
get { return _MachineID; }
set { _MachineID = value; OnPropertyChanged1("MachineID"); }
}
public string Description
{
get { return _Description; }
set { _Description = value; OnPropertyChanged1("Description"); }
}
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎很多打字,真的很长很乱.有没有办法用更新的语法样式调用OnPropertyChanged1()?像这样的东西:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
namespace LakesideQTS
{
public class Machine : BaseModel, IDataErrorInfo
{
public int MachineID {get;set; OnPropertyChanged1("MachineID");}
public string Description {get;set; OnPropertyChanged1("MachineID");)}
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您和男士们提供的任何帮助!
不,没有办法.
你有这样的准系统属性:
public int MachineID { get; set; }
Run Code Online (Sandbox Code Playgroud)
或者您拥有具有明确支持字段的完整属性:
private int _MachineID;
public int MachineID
{
get { return _MachineID; }
set
{
_MachineID = value;
OnNotifyPropertyChanged("MachineID");
}
}
Run Code Online (Sandbox Code Playgroud)
只有后一种语法才允许您执行除存储值之外的任何操作.