2011-02-04 7 views
0

ListBoxItem에서 마우스를 올리면 표시되는 MiniToolbar 팝업이 있는데, 항목 바로 아래에 표시해야합니다. ListBoxItem의 의의 ControlTemplate에 팝업을 정의 DataTemplate을 ListBoxItem의 WPF 팝업

    1. 이 항목에 팝업을 정의 내가 두 가지 옵션을 시도

      (마우스 오버 트리거는 항목에에 isSelected 속성을 설정)

    두 옵션 모두 정상적으로 작동하지만 매번 팝업이 다시 생성되는지 궁금합니다. (제발 조언)

    ListBoxItem보다는 ListBox의 ControlTemplate에서 팝업을 정의하는 것이 더 좋을 것이라고 생각합니다. 이 시도했지만 SelectedItem에 상대적으로 배치 속성에 대한 바인딩 식을 찾을 수 없습니다 (ListBox의 아래쪽에 표시됨, ListBoxItem의 아래쪽에 표시되지 않음).

    제안 사항?

    미리 감사드립니다. 마이클.

  • +1

    DataTemplate 항목에 팝업을 남기는 것이 좋습니다. 목록 상자에 수천 개의 항목이 있고 매우 상세한 팝업이 없으면 성능 문제가 없어야합니다. – Stewbob

    답변

    1

    두 경우 모두 각 목록 상자 항목마다 팝업이 한 번 생성됩니다.

    상당히 복잡하기 때문에 목록 상자의 CotnrolTemplate에있는 모든 항목에 단일 팝업을 사용하지 않는 것이 좋습니다. 그러나 여전히 그렇게하고 싶다면 Placement="Custom"을 팝업으로 설정하고 CustomPopupPlacementCallback을 지정할 수 있습니다. 해당 콜백에서 현재 선택한 항목의 위치를 ​​사용하여 배치를 계산할 수 있습니다.

    +0

    감사합니다 Pavlo & Stewbob. 좋아, 내 ListBoxes가 다소 작기 때문에, 나는 datatemplate 옵션으로 되돌아가는 것이 더 낫다고 생각한다. 나는 명령을 연결하기 시작했고 아마도 더 쉬울 것이라는 것을 깨달았다. (단지 단일 controltemplate에 대해 약 30 개의 다른 데이터 템플릿을 가지고 재사용을 생각할 것이다 ...) – Mike

    관련 문제