2009-11-16 1 views
1

누구나 데이터 테이블에서 콤보 박스 또는 콤보 박스 편집 값을 설정할 수 있습니까? 내가 WPF와 동일한 기능을 수행 할 수 있습니다 어떻게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; 
} 

: 윈폼에서 은 이런 식으로 뭔가를했다?

누군가 간단한 예제를 게시 할 수 있습니까? 사전에 감사드립니다.

답변

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"속성을 업데이트 콤보를 변경시키는 고려할 수 있습니다. 일반적으로 이는 더 깔끔한 구현을 가져옵니다.