2014-02-24 82 views
0

我在DataGrid中使用組合框。我正在使用此DataGrid「添加」和「編輯」。在「編輯」期間,當我在代碼中更改ComboBox的值時,SelectionChanged事件被激發兩次。第一次分配正確的值,然後第二次null分配給ComboBox,清除之前設置的數據! 我無法弄清楚我到底做錯了什麼。Silverlight組合框SelectionChanged事件觸發兩次

下面是將ComboBox綁定到模型的XAML代碼片段。

<sdk:DataGridTextColumn x:Name="SlNo" Binding="{Binding SlNo}" Header="sl.no" IsReadOnly="True"/> 
       <sdk:DataGridTemplateColumn Header="Activity Type"> 
        <sdk:DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
         <ComboBox x:Name="ActivityTypeCombo" IsDropDownOpen="True" 
                ItemsSource="{Binding AvailableActivityTypes}" 
            SelectionChanged="ActivityTypeSelectionChanged" 
            SelectedItem="{Binding SelectedActivityType, Mode=TwoWay}" 
                SelectedValue="{Binding Path=Description, Mode=TwoWay}"> 
           <ComboBox.ItemTemplate> 
            <DataTemplate> 
             <TextBlock Text="{Binding Description}"/> 
            </DataTemplate> 
           </ComboBox.ItemTemplate> 
          </ComboBox> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellEditingTemplate> 
       </sdk:DataGridTemplateColumn> 

的代碼段我設置的值是:

foreach (var claimDetailViewModel in Claims) 
{ 
    claimDetailViewModel.SelectedActivityType = 
    _autoFillModel.ActivityTypes.SingleOrDefault(at => at.Id == climDetailViewModel.ActivityTypeId);     
} 

ClaimDetailsGrid.ItemsSource = Claims; 

回答

0

在我看來,這同時使用SelectedItemSelectedValue控制選擇將無法正常工作。 當SelectedItem被設置時,這將最有可能觸發SelectedValue進行評估,並且因爲沒有設置SelectedValuePath,它將導致SelectedItem=null。 嘗試刪除SelectedValue綁定。

+0

非常感謝!有效。 – Bhagya

相關問題