数据绑定只获取属性。 UI更新。 BindingSource的

时间:2010-11-18 11:35:05

标签: .net data-binding

我绑定了类'仅获取属性(例如)

    public bool IsRunning
    {
     get 
      {
         return myThread!=null && myThread.IsAlive;
      }
    }

使用绑定源。绑定到它的控件不会反映仅获取属性的更改。 我以为我可以实现INotifyPropertyChanged接口,但这似乎只适用于setter (因为您需要在该属性更改时手动引发PropertyChanged事件) 现在我有愚蠢的计时器运行和轮询更改。我可以做些什么来自动控制(或绑定源)以动态反映属性值?

1 个答案:

答案 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;
  }
}