2011-12-31 1 views
1

C# wpf 질문이 있습니다. 동적 인 목록에 MenuItem을 바인딩하고 있습니다. 목록에있는 모든 객체는 주 메뉴 항목에 대한 새로운 하위 MenuItem입니다.Wpf를 사용하여 MenuItem에서 하위 항목을 생성하도록합니다.

모든 항목은 선택 가능하며 체크 된 항목과 선택하지 않은 항목을 구현합니다. 문제는 사용자가 기본 MenuItem을 처음 열 때까지 체크 및 체크되지 않은 이벤트가 표시되기를 바라는 것입니다. 추가 된 항목이 바인드 된 항목에 추가 되더라도 사용자가 주 MenuItem을 처음 열 때만 나타납니다. 그 전에 목록).

수동으로 처리 할 수 ​​있지만 (끔찍한 것처럼 보이지만) 기본 MenuItem이 처음으로 열릴 때도 이벤트가 호출되고 엉망이됩니다.

그래서 basiclly 내가 체크하고 체크하지 않은 이벤트가 작동 할 것이라고 말할 때 기본 MenuItem을 자식으로 만드는 "강제"방법이 필요합니다.

모든 것을 시도했으며 UpdateLayout도 작동하지 않았습니다. 심지어 WindowLoaded 에버트에서 메뉴를 열었을 때도 이벤트가 끝난 후에도 열려 있어야하며 자식을 만드는 것보다 (실제로 열어서 실제로 닫을 수 있다고 생각하여 사용자에게 알려지지 않을 것입니다.).

제 질문이 충분히 분명하기를 바랍니다.

미리 감사드립니다. :-)

+0

"사용자가 기본 MenuItem을 처음 열 때 검사되고 검사되지 않은 이벤트가 실행되기를 원합니다"라고 생각합니다. – Paparazzi

답변

1

메뉴의 이벤트이기 때문에 의미가 있습니다. 당신이 수동으로 말할 때 당신은 무엇을하고 있습니까? 나는 도우미를 작성하여로드시 및 이벤트별로 호출합니다. 검사 상태를 저장하는 개인 목록 Bool을 만들고 상태가 변경된 경우에만 실제 이벤트 코드를 실행하십시오.

관련 문제