중 하나가 내가 데이터 트리거가 이런 식으로 정의되어있을 때 UI를 통지하는 방법 :뷰 모델의 객체 바인딩 - 그 속성 변경
<DataTrigger Binding="{Binding Path=DataContext.MyObject.MyProperty, Mode=OneWay, RelativeSource={RelativeSource AncestorType=UserControl}}" Value="False">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
을 MyObject가보기 모델입니다. 이제, MyProperty가 OnPropertyChange를 통보하더라도 MyObject의 MyProperty가 변경되면 UI에 통지하지 않습니다. 프레임 워크로 Microsoft Prism을 사용함에 따라 MyObject 개체가 컨테이너에 등록됩니다.
어떻게 작동합니까?
편집 : MyObject를 이런 식으로 정의된다
public class MyObject : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
private bool _myProperty;
public bool MyProperty
{
get { return _myProperty; }
set
{
if (value == _myProperty)
return;
_myProperty = value;
OnPropertyChanged("MyProperty");
}
}
}
'MyObject'의 정의 게시 - 하드 방아쇠만으로도 많은 것을 진단 할 수 있습니다. – JerKimball
완료, MyProperty가 자주 채워지고 UI의 상태가 업데이트되어야합니다. – Shankar
음 ... 아무것도 튀어 나오지 않습니다. 왜 트리거 바인딩에 'Mode = OneWay'가 표시됩니까? 오, 디버거가 연결되어있는 출력 창에 바인딩 오류가 있습니까? – JerKimball