그래서 StartDateTime는 기본적으로 계산 된 속성입니다 호출되지 않습니다. 다음과 같이 정의 할 수 있습니다 : 상영이 업데이트 또는 STARTDATE는 업데이트됩니다
public DateTime StartDateTime
{
get
{
return StartDate.Add(StartTime.TimeOfDay);
}
}
지금은 그 변화가 예를 들어 UI에 반영하고자합니다. 당신이 RaisePropertyChanged(() => StartDateTime);
상영이 업데이트 이제
private DateTime _startTime;
public DateTime StartTime
{
get { return _startTime; }
set
{
_startTime = value;
RaisePropertyChanged(() => StartDateTime);
}
}
에 대한 호출이 필요하다는 트리거하려면 UI는 StartDateTime뿐만 아니라 변화하는 신호를 얻을 것이다.
StartDate 또는 StartTime의 변경이 StartDateTime의 다른 값으로 연결되기 때문에 StartDate 속성도 RaisePropertyChanged(() => StartDateTime);
을 호출해야합니다.
RaisePropertyChanged
은 INotifyPropertyChanged
인터페이스의 구현이며 다른 객체가 가입 할 수있는 이벤트를 정의합니다. 본질적으로 그것은 가입자가 속성의 변경을 알리는 이벤트를 얻을 것이고, 예를 들어 그에 따라 UI를 업데이트 할 수 있도록 가입자가 속성 값을 다시 읽게 될 가능성이 있음을 의미합니다. 다시뿐만 아니라 변경 사항을 반영 할 수있는 UI 있도록 자체에 대한 RaisePropertyChanged
를 호출합니다 StartDateTime을 설정합니다 STARTDATE 또는 상영 중의 변형 때문에
private DateTime _startTime;
public DateTime StartTime
{
get { return _startTime; }
set
{
_startTime = value;
StartDateTime = StartDate.Add(_startTime.TimeOfDay)
}
}
private DateTime _startDate;
public DateTime StartDate
{
get { return _startDate; }
set
{
_startDate = value;
StartDateTime = _startDate.Add(StartTime.TimeOfDay)
}
}
private DateTime _startDateTime;
public DateTime StartDateTime
{
get { return _startDateTime; }
set
{
_startDateTime = value;
RaisePropertyChanged(() => StartDateTime);
}
}
:
다른 옵션이 될 것입니다.
두 번째 호출에서 'RaisePropertyChanged'가 없거나 잘못 되었나요? –
내가 원하는 것을 정확하게 이해하고 있는지 확실하지 않습니다. RaisePropertyChanged (() => StartDateTime)를 기대 했습니까? 실제로 StartDateTime 속성의 setter를 호출하는 결과가 발생합니까? 그 이유는 RaisePropertyChanged가 목적이 아니기 때문입니다. –
케빈과 피터 네 말이 맞다. 'StartDateTime'이 호출되기를 원합니다. – hotspring