2010-07-27 5 views
0

저는 Silverlight를 처음 접했지만 웹 개발 경험이 풍부합니다. Silverlight의 기본 콤보 박스에 짜증이났습니다. 그것은 정기적 인 데이터 입력에 대한 사용의 개념이 부족한 것 같습니다. 주로 드롭 다운을 치고 문자를 입력하면 해당 문자로 된 첫 번째 항목으로 이동합니다. 이 기능을 구현하기 위해 누락 된 쉬운 방법이나이 작업을 수행 할 수있는 제 3 자 컨트롤이 있습니까?Silverlight 콤보 상자가 HTML 선택 상자처럼 작동하도록하는 쉬운 방법은 무엇입니까?

감사합니다.

답변

1

이 기능을 제공하기 위해 첨부 된 동작을 작성할 수 있습니다. 문제는 Silverlight의 ComboBox에있는 항목이 항상 문자열이 아니라는 것입니다. 사용자가 템플릿으로 만든 전체 컨트롤이 ItemTemplate 일 수 있습니다. 귀하의 콘텐츠가 string 일 것이라는 것을 알고 있다면 Behavior<ComboBox>을 구현하여 KeyDown 이벤트에 첨부하고 올바른 것을 선택할 수 있습니다.

public class HTMLSelectBehavior : Behavior<ComboBox> 
{ 
    protected override void OnAttached() 
    { 
     AssociatedObject.KeyDown += OnKeyDown; 
    } 

    private void OnKeyDown(object sender, KeyEventArgs e) 
    { 
     SelectedItem = AssociatedObject.ItemsSource 
          .FirstOrDefault(i => i.ToString().BeginsWith((char)e.Key)); 
    } 
} 

이것은 정확히 맞지 않을 수 있으므로 내 머리 위로 떨어져 있고 확실히 많은 안전 점검이 부족하지만, 그것은 당신에게 아이디어를 제공해야합니다.

+0

감사합니다. – Spencer

관련 문제