привязка данных, чтобы получить только свойства. Обновление пользовательского интерфейса. BindingSource - PullRequest
0 голосов
/ 18 ноября 2010

Я привязан к классу 'получить только свойства (например)

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

с использованием источника привязки. И связанные с ним элементы управления не отражают изменения свойств get only. Я думал, что мог бы реализовать интерфейс INotifyPropertyChanged, но это, кажется, работает только на сеттер (потому что вам нужно вызвать событие PropertyChanged вручную при изменении этого свойства).
Прямо сейчас у меня работает тупой таймер и опрашивает изменения. Что я могу сделать, чтобы автоматизировать элементы управления (или связать источник в этом отношении) для динамического отображения значений свойств?

1 Ответ

1 голос
/ 18 ноября 2010

Продолжайте реализовывать 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;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...