我有一个包含DataGrid的WPF表单。此DataGrid是可编辑的。 DataGrid的一列包含一个ComboBox,其中包含供用户选择的查找代码列表。
编辑时,用户可以通过调用模态窗口添加新的查找代码。当控件返回到DataGrid时,组合框没有新的查找代码。
如何在添加项目后刷新组合框中的列表?
以下是我的组合框的定义方式。下面是DataGrid的列,然后是我的字典片段。
<DataGridTemplateColumn Header="Type" Width="160">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding AddrType.Description}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox Name="cboAddrtype"
ItemsSource="{Binding Source={StaticResource addrTypeList}}"
SelectedValuePath="ID"
DisplayMemberPath="Description"
SelectedValue="{Binding AddrTypeID, UpdateSourceTrigger=PropertyChanged}"
Width="100" />
<Button ToolTip="New" Name="btnNewAddressType" Click="btnNewAddressType_Click">
<Image Source="Images\Add.png" Style="{StaticResource buttonImageStyle}" />
</Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
GetAddressTypes()方法返回一个ObservableCollection。
<ObjectDataProvider x:Key="addrTypeList" IsAsynchronous="True"
MethodName="GetAddressTypes"
ObjectType="{x:Type components:AddressComponent}"/>
答案 0 :(得分:1)
当模态窗口关闭时,我会将新地址添加到addrtypeList,或者根据您所需的行为保存对象。因为它是一个observableCollection,它应该自动更新组合框。