테두리의 커서를 TemplateInstance의 개인 속성에 바인딩하려고합니다.
XAML :WPF C# TemplateInstance에 바인딩이 작동하지 않습니다.
<Border Cursor="{Binding ToggleCursor}">
C 번호 : 나는 또한 내 TemplateClass에서에서 INotifyPropertyChanged를 구현 한
private Cursor ToggleCursor {
get {
return IsEnabled ? Cursors.Hand : Cursors.Arrow;
}
}
:
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string PropertyName) {
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) {
handler(this, new PropertyChangedEventArgs(PropertyName));
}
}
물론 나는 프레임 워크 통지 변경 사항에 대한 :
는 (I는 여전히 재산 적어도 한 시간을 가야 그렇게하지 않을 경우에도)
IsEnabledChanged += (sender, e) => OnIsEnabledChanged();
및
private void OnIsEnabledChanged() {
OnPropertyChanged("ToggleCursor");
}
그리고 네, 클래스는 인터페이스를 구현 . 국경은 결코 재산에서 가치를 가지고 가지 않는다이다.
F.e. 속성에
Cursors.Cross
을 반환하면 여전히 Cursors.Arrow
이 표시됩니다. 아이디어가 있으십니까?
예 :이 애니메이션 동작과 파란색 테두리가있는 체크 박스의 일종이다
바인딩 커서를 받으면에. 문제 해결 - public
속성을해야합니다 데이터 컨텍스트 -__-
당신이 IsEnabled를 변경할 때 ToggleCursor에 대한 속성 변경을 제기하고 있습니까? –
@ pm_2 예, toadflakz에 대한 내 의견을 참조하십시오. –
여기에 사용자 지정 컨트롤을 만들고 해당 컨트롤에 따라 Border 요소의 커서를 변경하려고합니까? 제어가 활성화 되었습니까? –