이것은 약간의 문제입니다. (.NET 3.5sp1)WPF ToggleButton 바인딩이 비활성화 된 경우 IsChecked
세 개의 ToggleButton을 포함하는 UserControl이 있습니다. 각각의 IsChecked는 UserControl 자체의 다른 종속성 속성에 바인딩됩니다. 이 중 두 개는 기본값이 true이고, 기본값은 false입니다.
응용 프로그램을 시작할 때 UserControl 자체 및 해당 내용을 사용할 수 없습니다. 나중에 활성화되면 세 개의 버튼이 모두 눌려지지 않은 상태로 나타납니다. 그러나 코드 속성은 여전히 올바른 상태입니다.
버튼을 클릭하면 속성이 올바르게 전환되고 UI (해당 버튼 만 해당)가 올바른 상태를 반영하도록 업데이트됩니다 (즉, 누르지 않은 것처럼 보이지만 바운드 값이 true 인 버튼을 클릭하면 처음에는 눈에 보이는 변화는 보이지 않지만 바운드 값은 false로 업데이트됩니다. 두 번째 시간 동안 "글리치가있는"버튼을 누르면 정상적으로 작동합니다 (토글하면 예상대로 버튼이 눌립니다).
시작시 UserControl이 비활성화되어 있지 않으면 등록 정보의 상태에 따라 버튼이 올바르게 나타납니다.
불행히도 UserControl은 시작할 때 사용하지 않도록 설정되어 있으므로 실제로 사용할 수는 없습니다. 대체 솔루션을 기대하고 있습니다. 어떤 아이디어?
(나는 속성은 사용자 컨트롤의 Load 이벤트에서 사실로 설정 한 후 허위로 기본 제작 시도했습니다. 어떤 차이를하지 않습니다.)
사실은 내가이 과도하게 단순화 수도 -의 IsEnabled 데이터 바인딩 아니지만 사용자가 직접 제어에가 나무 위로 요소 이상에서입니다. 그러나이 해킹은 올바른 DataContext를 조정 한 후에 작동합니다. (항상 UserControl 자체가 아니라 첫 번째 자식에 내부 컨텍스트를 넣었습니다. 그렇지 않으면 외부에서 오버라이드되어 지저분해질 수 있습니다.) – Miral