2012-07-13 65 views
0

因爲我是WPF的初學者,所以我有一個本質上可能是基本的問題。WPF Datagrid Combobox XAML和Codebehind

我有一個datagrid,它有一個組合框。

這是我寫的XAML是:

<DataGridComboBoxColumn Header="ControlOption" Width="100" 
     SelectedItemBinding="{Binding Path=DataGridComboxBox_Control}"> 
    <DataGridComboBoxColumn.ItemsSource> 
     <col:ArrayList> 
      <sys:String>Database1</sys:String> 
      <sys:String>DataBase2</sys:String> 
     </col:ArrayList> 
    </DataGridComboBoxColumn.ItemsSource> 
</DataGridComboBoxColumn> 

我有3個值,這應該是有在下拉ComboBox的下降。 1. WorkStream1 2. WorkStream2 3. WorkStream3

現在我該怎樣寫的ComboxBox代碼隱藏。 請給我指點一下。 :)

非常感謝。

Ashutosh

+0

你的問題並不清楚,你究竟想在代碼背後做什麼? – akjoshi 2012-07-13 08:31:51

+0

我編輯了我的帖子,認爲需要在組合框的下拉列表中輸入3個值。 – Ashutosh 2012-07-13 08:41:51

回答

0

對不起,還不完全瞭解你。你想從後面的代碼中替換combobox的itemssource嗎? 在這種情況下,您可以將組合框的ItemsSource綁定到屬性。這樣的:

<Controls:DataGridComboBoxColumn Header="Gender" ItemsSource="{Binding Path=Genders}" /> 

,並在後面的代碼會像水木清華

public ObservableCollection<string> Genders 
    { 
     get { 
      return _genders; 
     } 
     set { _genders = value; 
      PropertyChanged(this, new PropertyChangedEventArgs("Genders")); 
     } 
    } 

如果你的意思是別的不便,請解釋。可能是我誤解了你的意思

+0

正如我前面提到的。對Combobox列的ItemsSource使用綁定​​。 ObservableCollection通知集合何時更改。所以,如果你想設置新值,你可以調用Genders.Clear()方法並添加新值(WorksStreams) – Artiom 2012-07-13 08:43:26

+0

謝謝Artiom :)得到它並需要相同的。 – Ashutosh 2012-07-13 09:45:05

0

使用datagrid_PreviewKeyDown函數捕獲網格中的按鍵。如果單元格重點使用 datagrid.BeginEdit()將單元格從文本塊轉換爲組合框。 我認爲這將有助於解決這個問題。