2012-07-13 85 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()将单元格从文本块转换为组合框。 我认为这将有助于解决这个问题。