2011-12-28 7 views
0

WPF(ListBoxまたはDropDownList)でUS Stateをバインドする最良の方法はありますか? 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

Marvelous !!どうもありがとう。 – usergaro

+0

Brandonに感謝します。以下は私のコードです。私はwhile(rdr.read())を使ってリーダーからデータを読み込んでListオブジェクトに追加しました。しかし、実際にはパフォーマンスが低下しました。 どのようにパフォーマンスが低下していることに気付きましたか? 私の状態リストボックスをDataTableにバインドして、Listオブジェクトで試しました。私は文字通りDataTableで目が瞬きしている間にほぼ2秒かかると見ることができます。 – usergaro

+0

ADO.Netには、データベースからの読み込み時にオーバーヘッドがたくさんあります。 DataSetにバインドするDataAdapterを使用して、DataTableにバインドすると、手順が多すぎるためパフォーマンスが低下します。 SQLCommandを使用するだけで、より軽量で高速で接続が少なくてすみます。 初心者には最初のアプローチが使いやすいです。 良いコーディング基準は、できるだけ少ないコードを使用し、必要なデータのみをデータベースから接続して返すことです。 しかし、DBからのデータは使用され、変更されません。私はそれをキャッシュすることをお勧めします。 –

関連する問題