我有一个带有DataGrid的WPF表单。此DG包含一个包含ComboBox的DataGridTemplateColumn。当我单击DG的新行并从Combobox中选择一个值,然后按tab键切换到下一列时,所选值在combobox列中不再可见。
但是,当我按tab键返回时,正确的值显示在组合框中。
在按tab键离开组合框列时,如何保持选定的值显示在该列中?
以下是我的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>
发布于 2011-12-15 02:31:21
在CellTemplate中绑定LocationType.Description,在CellEditingTemplate中绑定SelectedLocationType和LocationTypeKey。我不确定来自ComboBox的绑定不会以某种方式影响LocationType.Description。
此外,SelectedLocationType和LocationTypeKey不在DataTemplate的上下文中。您应该添加一个Source绑定属性来获取ViewModel。
https://stackoverflow.com/questions/8508287
复制相似问题