【发布时间】:2014-03-26 03:40:48
【问题描述】:
我在 DataGrid 中使用 ComboBox。我将这个 DataGrid 用于“添加”和“编辑”。当我在“编辑”期间更改代码中 ComboBox 的值时,SelectionChanged 事件会被触发两次。第一次分配正确的值,然后第二次将 null 分配给 ComboBox 清除我之前设置的数据! 我无法弄清楚我到底做错了什么。
这是我将 ComboBox 绑定到模型的 XAML sn-p。
<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;
【问题讨论】:
标签: silverlight datagrid combobox