如何访问WPF数据网格中的单元级组合框?
我的数据网格列模板中有组合框,如下所示如何访问WPF数据网格中的单元级组合框?,wpf,binding,datagrid,combobox,Wpf,Binding,Datagrid,Combobox,我的数据网格列模板中有组合框,如下所示 <my:DataGridTemplateColumn x:Name="dgColReferece" Header="References" > <my:DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox x:Name="cmbReferece_SRV" Loaded="cmbRefere
<my:DataGridTemplateColumn x:Name="dgColReferece" Header="References" >
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="cmbReferece_SRV" Loaded="cmbReferece_SRV_Loaded" Width="160" SelectionChanged="cmbReferece_SRV_SelectionChanged"
IsTextSearchEnabled="True" SelectedValue="{Binding Reference, Mode=TwoWay}" >
</ComboBox>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
这将仅将新项绑定到选定行中的组合框。但我需要它绑定到所有的组合框?我怎样才能做到这一点。我不熟悉wpf和binding Stuff>如何继续?您上面的代码有点混乱。你能再解释一下你想做什么吗。我可以看到一些与正确的WPF编程实践的偏差,特别是关于在datagrid中使用组合框 例如
cmbReferece\u SRV\u selection changed
之类的事件,而不通过转换器使用SelectedValue
和SelectedValuePath
组合框.ItemsSource
?数据表?物品清单李>
SelectionChanged
事件中设置组合框的ItemsSource
,这会适得其反我知道您是WPF新手,所以如果您向我解释您的问题,我可以为您的问题建议一些有用的WPF编码实践。组合框项目源是datatable。我正在重新绑定,因为一旦他选择了“addnew”项,一个新项就会被添加到数据库中。这里没有显示代码部分,但我提到了它。因此,在添加新项目后,我再次绑定daasource,以反映组合框中添加的新项目
private void cmbReferece_SRV_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ ComboBox objComboBox = (ComboBox)sender;
if (objComboBox.SelectedValue.ToString() == "<-- Add New -->")
{
//code for saving new item entered by user to database
if (IsSaved)
{
DataSet dsReference = (DataSet)GetFStdReference();
CommonCalls.BindDropDownList(cmbReferece_SRV, dsReference.Tables[0], "Reference", "Reference");
}
objComboBox.SelectedValue = -1;
}
}