首页 文章

datagrid列不会更新

提问于
浏览
1

我有一个带有DataGrid的WPF表单 . 此DG包含一个包含ComboBox的DataGridTemplateColumn . 当我单击DG的新行并从Combobox中选择一个值然后选项卡到下一列时,所选值不会在组合框列中保持可见 .

但是,当我回退时,组合框中会显示正确的值 .

当我从列中删除时,如何保持选定的值显示在组合框列中?

这是我的comboxbox列xaml:

<DataGridTemplateColumn Header="Type" Width="160">
<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding LocationType.Description, Mode=TwoWay}"/>
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

<DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <ComboBox Name="cboAddrtype"
                      ItemTemplate="{StaticResource dtAddrType}" IsSynchronizedWithCurrentItem="True"
                      ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}, AncestorLevel=1}, Path=DataContext.LocationTypesObject, Mode=OneTime}"
                      SelectedItem="{Binding Path=SelectedLocationType, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
                      SelectedValue="{Binding Path=LocationTypeKey, Mode=TwoWay}"
                      SelectedValuePath="InternalKey"
                      Width="100" />

        </StackPanel>

    </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

1 回答

  • 1

    CellTemplate 中你绑定了 LocationType.Description 并且在 CellEditingTemplate 中你绑定了 SelectedLocationTypeLocationTypeKey . 我不确定 ComboBox 的绑定是否会以某种方式影响 LocationType.Description .

    此外, SelectedLocationTypeLocationTypeKey 不在 DataTemplate 的上下文中 . 您应该添加 Source 绑定属性以获取ViewModel .

相关问题