Mec*_*h0z 6 .net c# wpf binding
我正在尝试创建一个类,当它启动时,它会启动一个秒表,并且所有时间都将经过的时间写入本地变量 Elapsed,我有一个数据绑定到的 Listview。但是当我使用这段代码时,Listview 只显示 00:00:00.00000001 并且永远不会改变。类的代码是:
命名空间 project23
{
公共类 ActiveEmployee
{
公共 int EmpID { 获取;放; }
公共字符串 EmpName { 获取;放; }
私人日期时间日期;
私人 BackgroundWorker 工作者;
公共秒表 sw;
公共 ActiveEmployee(int empID,字符串 empName)
{
日期 = DateTime.Now;
worker = new BackgroundWorker();
worker.DoWork += 后台工作;
worker.WorkerReportsProgress = true;
worker.RunWorkerAsync();
}
私人时间跨度已过;
公共时间跨度已过
{
得到 { 返回已过;}
放
{
已用时间 = 值;
NotifyPropertyChanged("Elapsed");
}
}
私有无效BackgroundWork(对象发送者,DoWorkEventArgs args)
{
sw = 新秒表();
sw.开始();
如果是真的)
{
Elapsed = sw.Elapsed;
}
}
公共事件 PropertyChangedEventHandler PropertyChanged;
私有无效 NotifyPropertyChanged(字符串信息)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}
}
现在它可以使用计时器代替
使用系统; 使用 System.ComponentModel; 使用 System.Timers;Run Code Online (Sandbox Code Playgroud)命名空间 Eksamen_Januar_2011 { 公共类 ActiveEmployee : INotifyPropertyChanged { 公共 int EmpID { 获取;放; } 公共字符串 EmpName { 获取;放; } 私人日期时间开始日期; 私人 BackgroundWorker 工作者; 私人定时器定时器;
public ActiveEmployee(int empID, string empName) { startDate = DateTime.Now; worker = new BackgroundWorker(); worker.DoWork += BackgroundWork; timer = new Timer(1000); timer.Elapsed += TimerElapsed; worker.RunWorkerAsync(); } private TimeSpan elapsed; public TimeSpan Elapsed { get { return elapsed; } set { elapsed = value; NotifyPropertyChanged("Elapsed"); } } private void BackgroundWork(object sender, DoWorkEventArgs args) { timer.Start(); } private void TimerElapsed(object sender, ElapsedEventArgs e) { Elapsed = DateTime.Now - startDate; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } }
}
您需要实现 INotifyPropertyChanged 接口。将您的类声明修改为:
public class Employee : System.ComponentModel.INotifyPropertyChanged
Run Code Online (Sandbox Code Playgroud)
请参阅http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx。
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |