2011-12-28 1 views
0

WPF (ListBox 또는 DropDownList)에서 미국 상태를 바인딩하는 가장 좋은 방법은 무엇입니까? DataTable을 사용하여이 데이터를 바인딩해야합니까? DataTable을 WPF 객체 프로그래밍 방식으로 바인딩하고 있습니까? 또는 클래스/객체를 사용해야합니까? 데이터베이스에서 데이터를 가져 와서 일반 객체 목록으로 변환 한 다음이 목록을 WPF 객체에 바인드한다는 의미입니까?미국 상태 ListBox/DropDownList에 좋은 접근법

감사합니다,

답변

0
public class States 
    { 
     private string name; 
     public string Name  
     { 
      get 
      { 
       return name; 
      } 
     } 

     private string id; 
     public string Id 
     { 
      get 
      { 
       return id; 
      } 
     } 
    } 

     List<States> states = new List<States>(); 

     //get from database 


     foreach(states DataSource) 
     { 
      name = "Alabama"; 
      id = "1"; 
     } 

     // next Cache list of states for better performance 

많은 방법 ... 한 가지 방법은 목록 클래스를 사용하는 것입니다. 더 나은 성능을 위해 데이터 소스, 다음 캐시에서 가져옵니다.

+0

놀라운! 고마워. – usergaro

+0

Brandon에게 감사드립니다. 아래는 제 코드입니다. while (rdr.read())를 사용하여 리더에서 데이터를 읽고 List 객체에 추가했습니다. 하지만 실제로 성능이 저하되었습니다. 성능이 저하 된 것을 어떻게 느꼈습니까? 상태 목록 상자를 DataTable과 바인딩하고 List 개체로 시도했습니다. DataTable을 사용하면 눈 깜짝 할 사이에 거의 2 초 정도 걸립니다. 제안 사항 – usergaro

+0

ADO.Net에는 데이터베이스에서 읽을 때 오버 헤드가 많이 생성됩니다. DataSet에 바인딩 한 DataAdapter를 사용하면 DataTable에 바인딩하는 데 너무 많은 단계가 있고 성능이 저하됩니다. SQLCommand를 사용하면 가볍고 빠르며 연결할 필요가 적습니다. 첫 번째 방법은 초보자가 사용하기가 더 쉽습니다. 좋은 코딩 표준은 가능한 적은 코드를 사용하고 데이터베이스에서 필요한 데이터 만 연결하고 반환하는 것입니다. 그러나 DB에서 사용되며 변경되지 않을 데이터입니다. 캐시하는 것이 좋습니다. –