항목과 항목 소스가있는 버튼 인 사용자 정의 컨트롤 생성?
-
06-07-2019 - |
문제
나는 만들려고 노력하고있다 SplitButton
a를 사용하는 컨트롤 ContextMenu
항목을 표시합니다. 그만큼 SplitButton
현재 파생되고 있습니다 Button
. 나는있다 PART_DropDownInitiator
그것은 사용자가 클릭하는 작은 아이콘입니다. ContextMenu
용 SplitButton
아이템을 보여주기 위해.
문제는 기본값을 설정하려고한다는 것입니다. ContextMenu
내부 SplitButton
'에스 Template
또는 스타일, 이런 식으로 컨트롤 사용자가 스스로 할 필요는 없습니다. 처음에 나는 단지 사용자가 SplitButton.ContextMenu.Items
XAML의 속성이지만 가능하지는 않습니다. 이제 추가하고 싶습니다 Items
그리고 ItemsSource
에 대한 속성 SplitButton
그 ContextMenu
내 SplitButton
의 템플릿은 그것에 바인딩 할 수 있습니다. 그리고 사용자는 Items
또는 ItemsSource
XAML의 속성 또는 Code-Behind의 속성 SplitButton
...
그러나 둘 다 Items
그리고 ItemsSource
속성은 유래 한 것 같습니다 ItemsControl
, 이것은 문제입니다 SplitButton
이미 파생되고 있습니다 Button
. 그래서 나는 무엇을 해야할지 잘 모르겠습니다 ... 어떤 아이디어가 있습니까?
해결책
상속 경로를 사용하는 경우 Default ControlTemplate이 헤더 컨텐츠를 버튼의 내용으로 넣는 HeaderedItemsControl에서 파생해야합니다.
결과적으로 항목/항목 소스도 얻을 수 있습니다. 개발해야 할 유일한 것은 ControlTemplate입니다.
마지막으로, 메뉴 부분을 ContextMenu 대신 팝업으로 구현하는 것을 고려하십시오. ContextMenu 's는 목적 별 UI 요소입니다 (일반적으로 마우스 오른쪽 버튼을 클릭하면). 자세한 내용은 Aero.normalcolor.xaml의 Combobox의 기본 제어판을 참조하십시오.