아래는 자동완성을 테스트할 프로젝트입니다.

image

ViewAppointBaseCode.cs는 자동완성시 나타날 데이터소스다 아래처럼…

 

 

 

ToolKit 다운로드하기

http://kojaedoo.tistory.com/606

http://wpf.codeplex.com/releases/view/40535

로 가서  WPF Toolkit 을 다운로드 합니다.

 

그리고

프로젝트에 참조를 추가

합니다.

툴킷을 설치했다면  C:\Program Files\WPF Toolkit\v3.5.50211.1 밑에 파일이 있습니다.

image

 

 

찾아서 참조해주세요

image

WPFToolkit 없으니깐 빌드할때 오류 ㅋ

 

참고로 추가했어도 VS2010 이여서 그런지 모르겠지만 도구상자에 안나타납니다.

(항목추가해도 마찬기지)

 

빌드한판 하시고

Microsoft Expression Blend 에서 프로젝트를 열어줍니다.

image

 

Blend 에서 검색하면 또 나오네????? 아래와 같이 끌어서 추가

image

이제 비하인드 코드에서 연결만 해주면 됩니다.

Xaml 에서는 요렇게 붙어있습니다.

image

image

 

데이터소스 바인딩

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            //kojaedoo는 01의 코드값을 가집니다.
            List<ViewAppointBaseCode> _AutoCompleteBoxDataList = new List<ViewAppointBaseCode>();
            _AutoCompleteBoxDataList.Add(new ViewAppointBaseCode() { Code = "01", DisplayName = "kojaedoo" });
            _AutoCompleteBoxDataList.Add(new ViewAppointBaseCode() { Code = "02", DisplayName = "kojaedoo2" });
            _AutoCompleteBoxDataList.Add(new ViewAppointBaseCode() { Code = "03", DisplayName = "kojaedoo3" });
            _AutoCompleteBoxDataList.Add(new ViewAppointBaseCode() { Code = "04", DisplayName = "kojaedoo4" });
            _AutoCompleteBoxDataList.Add(new ViewAppointBaseCode() { Code = "05", DisplayName = "kojaedoo5" });
            //자동완성에 표시될 항목
            NationAutoComplateBox.ValueMemberPath = "DisplayName"; 
            this.NationAutoComplateBox.ItemsSource = _AutoCompleteBoxDataList;
        }

코드값을 확인해보자

        private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            ViewAppointBaseCode vc = this.NationAutoComplateBox.SelectedItem as ViewAppointBaseCode;
            if (vc != null)
            {
                this.label1.Content = vc.Code;
            }
        }

 

 

구현된 모습

image

좀이상하다….

코드값은 잘 가지고 옵니다. ㅋ

image

 

image

리스트에 나오는것은 ToString() 값을 가지고 옵니다.

그래서 변경

 

 

ToString() 이것만 오버라이드 했습니다.

image

public  class ViewAppointBaseCodeConvert : ViewAppointBaseCode
{

 

    public override string ToString()
    {
        return base.DisplayName;
    }
}
바인딩 하는부분도 변경

ViewAppointBaseCode 를 ViewAppointBaseCodeConvert 으로 변경

image

+ Recent posts