2011-11-15 20 views
0

DataGridを含むWPFフォームがあります。このDataGridは編集可能です。 DataGridの1列には、ユーザーが選択するためのルックアップコードのリストを含むComboBoxが含まれています。Lookup値が追加された後に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

私は、モーダルウィンドウが閉じられているとき、または目的の動作に応じてオブジェクトが保存されたときに新しいアドレスをaddrtypeListに追加します。それはobservableCollectionであるため、自動的にコンボボックスを更新する必要があります。

関連する問題