1
我有一個DataGrid的WPF窗體。這個DG包含一個DataGridTemplateColumn,它包含一個ComboBox。當我點擊DG的新行並從組合框中選擇一個值,然後選項卡移動到下一列時,所選值不會在組合框列中保持可見。datagrid列不更新
但是,當我縮回時,正確的值顯示在組合框中。
當我關閉列時,如何保持顯示在組合框中的選定值?
這裏是我的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>
爲什麼你有一個`SelectedItem`和`SelectedValue`?他們是設置相同屬性的不同方式。我建議擺脫`SelectedItem`因爲它通過引用來比較項目,而不是值,因爲你有一個`OneWay`綁定它。 – Rachel 2011-12-14 17:01:03