我绑定了类'仅获取属性(例如)
public bool IsRunning
{
get
{
return myThread!=null && myThread.IsAlive;
}
}
使用绑定源。绑定到它的控件不会反映仅获取属性的更改。 我以为我可以实现INotifyPropertyChanged接口,但这似乎只适用于setter (因为您需要在该属性更改时手动引发PropertyChanged事件) 现在我有愚蠢的计时器运行和轮询更改。我可以做些什么来自动控制(或绑定源)以动态反映属性值?
答案 0 :(得分:1)
继续实现INotifyPropertyChanged,但在线程启动和死亡时引发事件 即:
bool _isRunning;
bool IsRunning{
get{return _isRunning;}
set{
_isRunning=value;
Dispatcher.BeginInvoke(new Action(()=>PropertyChanged(this,new PropertyChangedEventArgs("IsRunning"))));
}
void foo(){
myThread=new Thread(doWork).Start();
}
void doWork(){
IsRunning=true;
try{
// stuff
}finally{
IsRunning=false;
}
}