2012-06-06 77 views
0

我有兩個表。 Table1通過Table2ID與Table2鏈接。WPF組合框將SQL與selectedValue綁定爲數據庫

我需要一個組合框來加載Table2中的所有數據並顯示如表1所示的初始選擇。

下面的代碼只能加載從表2的所有數據,但無法顯示選擇如表1所示

任何一個能幫助我嗎? 謝謝。

enter image description here 在此圖片中,當窗口第一次加載時,組合框應顯示「Swan Wan Trading」。

Table1 
ID Name Table2ID 
1 Hello 1 
2 World 1 
3 User 2 

Table2 
ID Name 
1 ABC 
2 DEF 

private DataSet getData() 
     { 
      SqlConnection conn = new SqlConnection(ConnectionString); 
      SqlDataAdapter da = new SqlDataAdapter("usp_getalldata", conn); 
      DataSet ds = new DataSet(); 
      da.Fill(ds, "DATA"); 
      return ds; 
     } 
public Details() 
    { 
     InitializeComponent(); 
     DataSet ds = getData(); 
     DataTable dt = ds.Tables[0]; 
     this.combobox.ItemsSource = ((IListSource)dt).GetList(); 
     this.combobox.DisplayMemberPath = "Name"; 
     this.combobox.SelectedValuePath = "ID"; 
} 

回答

0
this.combobox.SelectedValue = Table2ID; 

使用上述和它的工作。 感謝您的協助。

1

不應該將ObjectDataProvider爲您ComboBox在你的XAML的ItemsSource

下面是一個如何使用它的例子。

<UserControl.Resources> 
    <ObjectDataProvider x:Key="MyDataSource" ObjectType="{x:Type my:StaticDataSource}" MethodName="GetMyData"/> 
</UserControl.Resources> 

... 

<ComboBox ItemsSource="{Binding Source={StaticResource MyDataSource}}" SelectedValue="{Binding Table2ID}"/> 

StaticDataSource類看起來是這樣的:

public class MyDataSource 
{ 
    private static IEnumerable<Table2> myData; 

    public MyDataSource(IEnumerable<Table2> data) 
    { 
     myData = data; 
    } 

    public static IEnumerable<Table2> GetMyData() 
    { 
     return myData; 
    } 
} 
+0

嗨Guillaume,我能夠顯示組合框中的Table2記錄,但我需要顯示在Table1的Table2ID中的comboxbox初始選定值。 – kyusan93

+0

您需要將'ComboBox'的'SelectedValue'或'SelectedItem'屬性綁定到'Table1'對象的相應屬性。你的問題中沒有這樣的事情。 – Guillaume