2012-06-06 2 views
0

У меня есть две таблицы. Таблица 1, связанная с Table2 через Table2ID.WPF ComboBox Bind SQL с selectedValue как в базе данных

Мне нужно иметь выпадающее поле для загрузки всех данных в таблицу2 и показать начальное значение, как показано в таблице1.

Ниже код может загрузить только все данные из Table2, но не в состоянии показать выбранный, как показано в табл.1

Может ли один помочь мне? Спасибо.

enter image description here На этом изображении combobox должен показать «Siong 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 как ItemsSource из ваших ComboBox в вашем XAML.

Вот пример использования.

<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 в combobox, но мне нужно исходное выбранное значение comboxbox, показанное в таблице TableIDID Table1. – kyusan93

+0

Вам необходимо привязать свойство 'SelectedValue' или' SelectedItem' 'ComboBox' к соответствующему свойству вашего объекта' Table1'. В вашем коде нет такого вопроса в вашем вопросе. – Guillaume

Смежные вопросы