datagrid列不会更新

时间:2011-12-14 16:48:00

标签: wpf mvvm datagrid combobox

我有一个带有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 个答案:

答案 0 :(得分:1)

CellTemplate {}} {}} {}} {} {{}} {}} {} {{}}我不确定LocationType.Description的绑定是否会以某种方式影响CellEditingTemplate

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