我为Listbox项设置了DataTemplate,使其包含TextBlock和TextBox。
我面临的问题是,当显示列表时,其selectionindex为-1,并假设用户是否直接点击任何listitem的文本框,那么该Listitem尚未设置为该列表的选择项列表框。
当用户直接关注文本框时,如何更改/设置列表框的selectedindex / item?
好的,让我更清楚
我的ListBox DataTemplate如下
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="325"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ProdName}" Margin="0,5,0,0" Width="315" FontSize="36" Grid.Column="0" ></TextBlock>
<TextBox InputScope="Number" Grid.Column="1" Text="{Binding ProdQty}" TextAlignment="Center" Width="80" HorizontalAlignment="Left" Name="txtQty" GotFocus="ClearZero" LostFocus="TextBoxLostFocus"></TextBox>
</Grid>
</DataTemplate>
现在打开页面时,如果填充了列表框并且其SelectedIndex为-1。现在假设用户点击(或设置焦点)直接进入说第3个TextBox(即列表框中第三个ListItem的文本框),我希望列表框SelectedIndex从-1更改为2(第3个项目索引)。 / p>
当我在第3个(比方说)TextBox获得焦点时正在重新检查ListBox的SelectedIndex时,它返回的值为-1。
希望我很清楚。 感谢
答案 0 :(得分:0)
点击它设置SelectedItem和SelectObject,因此它们最初为-1并且为null是完全合理的。
如果你想初始化它,那么只需将selectedindex设置为列表中的一个项目,然后填充它。 NB检查以查看items.count&gt;在你这样做之前就是0。