У меня есть два класса, которые реализуют INotifyPropertyChanged, и независимо они работают как положено. Тем не менее, я добавил свойство (Status) в один из классов (ClassA), которое дает значение на основе значений в другом классе (ClassB), и когда член в ClassB изменяется, я не получаю обновление в ClassA .
По сути, ClassA имеет свойство, которое содержит список ClassB, и моя идея состоит в том, что когда один из членов в ClassB изменяется, тогда это будет отражать и обновлять привязку для Status в ClassA.
Вот пример ...
public class ClassA : BaseModel
{
private ConnectionStatus _status;
public ConnectionStatus Status
{
get
{
ConnectionStatus status = ConnectionStatus.Disconnected;
foreach (ClassB classB in ClassBs)
{
status = classB.Status;
if (status != ConnectionStatus.Connected)
{
break;
}
}
return status;
}
}
private ObservableCollection<ClassB> _classBs;
public ObservableCollection<ClassB> ClassBs
{
get { return _classBs; }
set
{
_classBs = value;
OnPropertyChanged();
OnPropertyChanged("Status");
}
}
}
public class ClassB : BaseModel
{
private ConnectionStatus _status;
public ConnectionStatus Status
{
get { return _status; }
set
{
_status = value;
OnPropertyChanged();
}
}
}
XAML:
<TextBlock Text="{Binding Path=ClassAObject.Status}" />
Свойство Status, когда оно вызывается, будет отображать правильное значение, но привязка, которую я имею в XAML, не меняется.
DataContext и Binding настроены правильно, и он будет обновляться, если я обновлю Status вручную, но не при обновлении члена в ClassBs.