2011-05-05 8 views
0

콤보 상자에 '목록 항목 편집 양식'을 지정하면 콤보 상자를 열 때 반투명 편집 아이콘이 나타납니다.이 아이콘은 클릭 할 수 있습니다 콤보 상자의 데이터 소스에 항목을 추가/편집하기위한 양식을 엽니 다. WPF/Xaml에서 복제 할 수 있다면 누구나 알고 있습니까? 콤보 상자 옆에있는 단추보다 매우 매끄럽고 멋지게 보입니다. 나는 그 순간에 어떻게하는지 봅니다 (콤보 상자 목록의 맨 위에 항목을 추가하는 방법에 대한 많은 예제를 발견했으나 그렇지 않습니다. 난 무슨 일이WPF 콤보 상자 추가 항목

많은 감사
케빈 T

답변

0

나는이 완전한 해답이라고 생각하지 않지만, 나는 몇 가지 아이디어를 가지고 후. 나는이 모든 것을 통해 생각했지만, 아마 거기에 한

ComboBox에서 상속받은 새 클래스를 만들고 EditableComboBox라고 부르겠습니다. 이름이 PART_EditButton 인 Button 유형의 TemplatePart를 제공하고, 추가로 object 유형의 EditableComboBox에 대한 종속성 속성. EditorContent라고 부르 자.

OnApplyTemplate을 재정 의하여 (GetTemplateChild 사용) 버튼에 대한 참조를 가져오고 버튼의 Click 이벤트에 이벤트 핸들러를 연결합니다. Click 이벤트가 발생하면 자식 창을 만들고 표시하고 해당 Content 속성을 EditorContent로 설정합니다. DataContext 속성을 EditableComboBox의 DataContext로 설정합니다.

Blend를 사용하면 Button 용 기본 ControlTemplate의 복사본을 만들 수 있습니다. MyButtonControlTemplate이라고 부르 자. 단추의 불투명도를 1보다 작게 변경하고 불투명도를 1로 설정하는 Storyboard를 MouseOver VisualState에 추가하십시오.

ComboBox에 대한 기본 ControlTemplate의 복사본을 만들려면 Blend를 사용하십시오. EditableComboBoxTemplate이라고합시다. 팝업 노드를 참조하십시오? 자식 Grid에 다른 투명한 행을 추가하고 PART_EditButton이라는 행에 버튼을 추가하십시오. 버튼의 템플릿을 MyButtonControlTemplate로 설정합니다. 그런 다음 템플릿을 EditableComboBoxTemplate로 설정하는 EditableComboBox의 기본 스타일을 만듭니다.

EditableComboBox를 사용하는 경우 EditableComboBox와 동일한 ItemsSource에 바인딩 된 ListBox가 포함 된 항목을 편집 할 수있는 항목으로 EditorContent 속성을 설정합니다.

적어도 다소 도움이 되었기를 바랍니다. 샘플 코드를 제공하고 싶지만, 불행히도 지금은 충분한 시간이 없습니다. 이것은 흥미로운 질문입니다. 그래서 나중에 다른 사람이 당신에게 더 좋은 아이디어를 주 었는지, 그리고/또는 당신이 가질 수있는 더 이상의 질문에 답하기 위해 나중에 다시 체크하려고 노력할 것입니다.

+0

Andrew, 답장을 보내 주셔서 감사합니다. 분명히 많은 생각을 해 주셨고 감사드립니다. 나는 다음 주에 당신의 아이디어를 통해 일하고보고 할 것입니다 (이번 주말에는 아무것도 할 수 없습니다). 많은 감사 –