C# Silverlight列表框在选择时始终高亮显示第一项
我有一个用代码填充的列表框。每个项目都是一个简单的文本/url组合,当选择一个项目时,它应该重定向到所选项目的url。这是工作的预期,但我有一个问题,在列表框中的项目选择。似乎无论您选择了哪个项目,列表框中的第一个项目每次都会高亮显示。您仍然被带到正确的项目,但它突出显示了错误的项目。有什么想法吗 编辑:这在IE8中是一个问题,但在FF3中工作正常 编辑:添加示例代码。HeadlineData是一个自定义类,基本上只是用来保存要显示的数据C# Silverlight列表框在选择时始终高亮显示第一项,c#,silverlight,C#,Silverlight,我有一个用代码填充的列表框。每个项目都是一个简单的文本/url组合,当选择一个项目时,它应该重定向到所选项目的url。这是工作的预期,但我有一个问题,在列表框中的项目选择。似乎无论您选择了哪个项目,列表框中的第一个项目每次都会高亮显示。您仍然被带到正确的项目,但它突出显示了错误的项目。有什么想法吗 编辑:这在IE8中是一个问题,但在FF3中工作正常 编辑:添加示例代码。HeadlineData是一个自定义类,基本上只是用来保存要显示的数据 <Canvas x:Name="HeadlineC
<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>
问题是您的列表框没有得到选择。当您单击超链接按钮时,它正在处理单击事件,因此该项目不会被选中
如果希望更改选择,则需要删除超链接按钮,然后在ListBox SelectionChanged事件上进行导航 你能发布一段你正在使用的代码吗?这肯定解决了大部分问题。我能看到的唯一问题是,如果选择/使用滚动条,如果有滚动条,列表框也将默认选择第一项。有什么想法吗?我不能用上面的代码复制这种行为。更新后的代码是什么样子的?你的头衔比“头衔1”长吗?可能是某种布局问题。我通常使用Silverlight Spy来调试这些类型的东西,因为你可以有高亮显示和项目,这样你就可以看到它到底有多大。
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);
}
}