我在代码中填充了一个ListBox。每个项目都是一个简单的文本/网址组合,当选择一个项目时,它应该重定向到所选项目的URL。这是按预期工作,但我在ListBox中选择项目时遇到问题。似乎无论您选择哪个项目,ListBox中的第一个项目每次都会突出显示。您仍然被带到正确的项目,但它突出显示错误的项目。有什么想法吗?
编辑:这是IE8中的问题,但在FF3中按预期工作。
编辑:添加示例代码。 HeadlineData是一个自定义类,基本上只是用于保存要显示的数据。
<Canvas x:Name="HeadlineCanvas">
<ListBox x:Name="HeadlineListBox" Width="260" Height="380" BorderBrush="Gainsboro" BorderThickness="1" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Hidden">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<HyperlinkButton MinHeight="20" MaxHeight="40" Width="240" NavigateUri="{Binding Url}" IsTabStop="False">
<TextBlock TextWrapping="Wrap" Text="{Binding Title}"/>
</HyperlinkButton>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Canvas>
C#代码
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
HeadlineData hd = new HeadlineData();
hd.Title = "Title 1";
hd.HeadlineNewsTitle = "Title 1";
hd.LastModifiedTime = DateTime.Now;
hd.Url = "http://www.google.com";
this.HeadlineListBox.Items.Add(hd);
hd = new HeadlineData();
hd.Title = "Title 2";
hd.HeadlineNewsTitle = "Title 2";
hd.LastModifiedTime = DateTime.Now;
hd.Url = "http://www.google.com";
this.HeadlineListBox.Items.Add(hd);
}
}
答案 0 :(得分:2)
问题是你的列表框没有得到选择。当您单击“超链接”按钮时,它正在处理单击事件,因此该项目未被选中。
如果要更改选择,则需要删除超链接按钮,然后在ListBox SelectionChanged事件上进行导航。