WPF中DataGrid里的DataGridComboBoxColumn列疑问

baidu_35950511 2016-08-24 09:48:10
我在DataGrid的中使用一个dt的datatable填充,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged
但是因为这个表中的某些列是需要实时绑定数据进行下拉框内容调整的

领用仓库下拉框的内容根据物料编号进行实时绑定

第一行填完选择之后数据是正常的

新增第二行,点击领用仓库列进入编辑模式时,第一行的领用仓库的数据就变成空白了
实时绑定我是写在PreparingCellForEdit事件中
前台代码:
<DataGridComboBoxColumn x:Name="GetWarehouse" Header="领用仓库">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="DisplayMemberPath" Value="仓库名称"/>
<Setter Property="Text" Value="{Binding Path=领用仓库,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="Text" Value="{Binding Path=领用仓库,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn >

后台代码:
Private Sub DGGet_PreparingCellForEdit(sender As Object, e As DataGridPreparingCellForEditEventArgs) Handles DGGet.PreparingCellForEdit
Try
Dim ID = DGGet.SelectedIndex
Dim BllMateriel As New BLL.B_Materiel
Dim BllMaterielInventory As New BLL.B_MaterielInventory
If e.Column Is GetWarehouse Then
GetWarehouse.ItemsSource = BllMaterielInventory.FindInventoryWarehouse(dt.Rows(ID).Item(2)).DefaultView
'GetWarehouse.ItemsSource = BllMaterielInventory.FindInventoryWarehouse(dt.Rows(ID).Item(2)).DefaultView
'GetWarehouse.DisplayMemberPath = "仓库名称"
'Dim Temp As New Binding
'Temp.Source = Tempdt.DefaultView
'Temp.Path = New PropertyPath("领用仓库")
'Temp.Mode = BindingMode.OneWay
'Temp.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
'GetWarehouse.SelectedItemBinding = Temp
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
...全文
1314 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2016-08-26
  • 打赏
  • 举报
回复
引用 3 楼 baidu_35950511 的回复:
引用 2 楼 duanzi_peng 的回复:
另外,数据源最好使用 ObservableCollection动态数据集合。
我们这个公司软件因为是在别人基础上改的,所以沿用了以前的vb格式,vb中我好像没找到ObservableCollection类,comobox的ValueMemberPath 这个属性也没找到...
噢,错了。应该是 SelectedValuePath
baidu_35950511 2016-08-25
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
另外,数据源最好使用 ObservableCollection动态数据集合。
我们这个公司软件因为是在别人基础上改的,所以沿用了以前的vb格式,vb中我好像没找到ObservableCollection类,comobox的ValueMemberPath 这个属性也没找到...
exception92 2016-08-25
  • 打赏
  • 举报
回复
另外,数据源最好使用 ObservableCollection动态数据集合。
exception92 2016-08-25
  • 打赏
  • 举报
回复
查查 ValueMemberPath 的用法。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧