2009-11-16 96 views
1

任何人都可以幫助我從數據表中設置combobox或combobox編輯值嗎? 在的WinForms它是這樣的:如何將ComboBox或ComboboxEdit綁定到DataTable

DataSet dataBases = GetDatabases(); 

if ((dataBases != null) && (dataBases.Tables[0].Rows.Count > 0)) 
{ 
    comboBoxDataBases.DisplayMember = "DbName"; 
    comboBoxDataBases.DataSource = dataBases.Tables[0]; 

    if (comboBoxDataBases.FindStringExact(tempDBName) > 0) 
    { 
     comboBoxDataBases.SelectedIndex = comboBoxDataBases.FindStringExact(tempDBName); 
    } 
} 
else 
{ 
    comboBoxDataBases.DataSource = null; 
} 

我怎麼可以用WPF做相同的功能?

任何人都可以發佈一些簡單的例子。提前感謝。

回答

0

這裏是如何做到這一點的WPF:

<ComboBox 
    ItemsSource="{Binding DbTable}" <!-- Get the data from the DataContext --> 
    SelectedValuePath="{Binding DbName}" <!-- Only desirable if you want to select string values, not table rows --> 
    SelectedValue="{Binding tempDBName, Mode=OneWay}" > <!-- Initialize value --> 

    <ComboBox.ItemTemplate> 
    <DataTemplate> 
     <TextBlock Text="{Binding DbName}" /> <!-- Display the DbName in the dropdown --> 
    </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

這是假設DataContext設置爲一個對象包含表,這對於一個典型的WPF設計將被包含模板來完成,或者如果在頂層由代碼:

this.DataContext = new 
{ 
    DbTable = dataBases.Tables[0], 
    ... 
}; 

此外,你可能會考慮從上面的XAML去除Mode=OneWay,讓更改組合框更新「tempDbName」屬性。一般來說,這會導致更清晰的實施。

相關問題