Welcome

首页 / 软件开发 / .NET编程技术 / [WPF]如何正确地用代码设置ListBox的当前选中项

[WPF]如何正确地用代码设置ListBox的当前选中项2012-01-02 博客园 南柯之石有人可能会说这有什么好写的。不就是一行代码就能搞定的吗?而且为什么需要用代码设置SelectedItem呢?用户所点的Item不就自动是SelectedItem吗?在这里将要讨论我们的,就是ListBox自己没有能自己把SelectedItem设置正确的情况。本来想当作一个WPF Bug清单的一篇文章的,但是又感觉也许就是有这样变态的需求呢。

我们用一个非常简单的代码的XAML就可以重现这个问题。

Demo Window

1<Window x:Class="SelectListBoxItem.DemoWindow"2  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"3  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"4  xmlns:s="clr-namespace:System;assembly=mscorlib"  5  Title="ListBox Selection Problem"6  SizeToContent="Height"7  Width="300">8  <ListBox>9    <ListBox.ItemTemplate>10      <DataTemplate>11        <TextBox Text="{Binding .}" Width="100"/>12      </DataTemplate>13    </ListBox.ItemTemplate>14    <s:String>a</s:String>15    <s:String>b</s:String>16    <s:String>c</s:String>17  </ListBox>18</Window>
运行的效果如下。

图1. TextBox得到焦点