Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight列表框在选择时始终高亮显示第一项_C#_Silverlight - Fatal编程技术网

C# Silverlight列表框在选择时始终高亮显示第一项

C# Silverlight列表框在选择时始终高亮显示第一项,c#,silverlight,C#,Silverlight,我有一个用代码填充的列表框。每个项目都是一个简单的文本/url组合,当选择一个项目时,它应该重定向到所选项目的url。这是工作的预期,但我有一个问题,在列表框中的项目选择。似乎无论您选择了哪个项目,列表框中的第一个项目每次都会高亮显示。您仍然被带到正确的项目,但它突出显示了错误的项目。有什么想法吗 编辑:这在IE8中是一个问题,但在FF3中工作正常 编辑:添加示例代码。HeadlineData是一个自定义类,基本上只是用来保存要显示的数据 <Canvas x:Name="HeadlineC

我有一个用代码填充的列表框。每个项目都是一个简单的文本/url组合,当选择一个项目时,它应该重定向到所选项目的url。这是工作的预期,但我有一个问题,在列表框中的项目选择。似乎无论您选择了哪个项目,列表框中的第一个项目每次都会高亮显示。您仍然被带到正确的项目,但它突出显示了错误的项目。有什么想法吗

编辑:这在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>

问题是您的列表框没有得到选择。当您单击超链接按钮时,它正在处理单击事件,因此该项目不会被选中


如果希望更改选择,则需要删除超链接按钮,然后在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);
    }
}