添加查找值后,更新ComboBox中的项目

时间:2011-11-15 14:30:04

标签: wpf datagrid combobox

我有一个包含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}"/>

1 个答案:

答案 0 :(得分:1)

当模态窗口关闭时,我会将新地址添加到addrtypeList,或者根据您所需的行为保存对象。因为它是一个observableCollection,它应该自动更新组合框。