【问题标题】:Silverlight ComboBox SelectionChanged event fires twiceSilverlight ComboBox SelectionChanged 事件触发两次
【发布时间】: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


    【解决方案1】:

    在我看来,同时使用SelectedItemSelectedValue 来控制选择将无法正常工作。 当设置SelectedItem 时,这很可能会触发SelectedValue 被评估,并且因为没有设置SelectedValuePath,它将导致SelectedItem=null。 尝试删除 SelectedValue 绑定。

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多