2010-11-18 1 views
1

텍스트 (예 : 이름)를 입력 할 수있는 텍스트 상자를 기반으로 사용자 지정 컨트롤을 만들고 이름을 사용자 지정 항목으로 변환하면 그들을 제거하는 X 버튼 등). 이것은 내가 좋아하는 것이 무엇 :간단한 텍스트가 아닌 사용자 지정 항목이 포함 된 WPF 텍스트 상자 usercontrol

alt text

어떻게 이것을 달성 할 수 있습니까? 한 텍스트를 사용자 정의 항목으로 바꿀 수 있습니까? 아이디어를 제공해 주셔서 감사합니다.

답변

1

텍스트 상자의 changing the control template으로이를 수행 할 수 있습니다. Usercontrol을 사용하고 있으므로 사용자 컨트롤 주위에 Border을 추가하고 버튼 + 경계선없는 텍스트 상자를 DockPanel 또는 StackPanel에 넣기 만하면됩니다.

1

Emails을 ListView에 바인딩하고 전자 메일과 단추가 모두있는 ItemTemplate을 제공하십시오.

전자 메일을 삭제하고 명령 매개 변수로 삭제할 전자 메일을 전달하는 명령에 각 단추를 바인딩합니다.

텍스트 상자를 속성에 바인딩합니다 (예 : NewEmail). 설정자에게 NewEmail을 추가하여 Emails의 기본 컬렉션에 다른 이메일을 추가 한 다음 PropertyChangedNewEmail을 알립니다. getter는 항상 빈 문자열을 반환해야합니다.

TextBox가 변경되면 (포커스를 잃어 버리면) 설정자가 전자 메일에 전자 메일을 추가하고 텍스트 상자를 지 웁니다. Emails은 반환하는 속성이어야합니다. ObservableCollection<Email>

이렇게하면 새 이메일이 실제 이메일 주소인지 확인하는 등의 작업을 수행 할 수 있습니다.

시간이 있으면 몇 가지 예를 들어 업데이트하겠습니다. 그 동안이 도움이되기를 바랍니다.

편집 : 또한 변경할 수 있습니다 텍스트 상자의 UpdateSourceTrigger=PropertyChanged 당신이 말에 의해 추가되는 새로운 이메일, 세미콜론에 반응합니다. 그러면 포커스를 잃지 않고 텍스트가 변경 될 때마다 속성이 업데이트됩니다.

관련 문제