请帮助解决以下问题。 我在列表框项目datatemplate中有Combobox,这样我就可以加载多个组合框但是相同的项目源
<StackPanel>
<ListBox Width="400" Name="lstFiles" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Name="dataGrid">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBox Name="dragFileName"
Margin="5,0,0,0"
Text="{Binding fileName, UpdateSourceTrigger=Default}" />
<ComboBox Grid.Row="0"
Grid.Column="1"
Margin="5,0,0,0"
Name="cboDragDocType"
ItemsSource="{Binding dragDocType, UpdateSourceTrigger=LostFocus, Mode=TwoWay}"
Text="{Binding dragDocTypeText}"
IsEditable="True"
IsReadOnly="True" />
<Button Name="dragDelBtn"
Grid.Column="2"
Height="20">X</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
使用ObservableCollection属性在comboBox中加载数据。在Initialize方法中,我为循环方法做了多个项目。 问题场景:从下拉列表中选择项目 - &gt;然后从dropdown2中选择项目 - &gt;再次单击dropdown1,现在dropdown1 itemssource为空。
答案 0 :(得分:0)
您没有绑定SelectedItem
的SelectedValue
(或ComboBox
)属性。因此,无法保存(或检索)该值。
您需要在类中添加一个属性作为DataContext来保存ComboBox
的所选项,例如:
<ComboBox Grid.Row="0"
...
SelectedItem="{Binding Path=SelectedDragDocType, UpdateSourceTrigger=LostFocus}" />
作为旁注,设置为ComboBox
的{{1}}上的IsEditable和IsReadOnly属性都非常严格。你确定这是预期的行为吗?