1

我的 xaml 中有这个ListBox

FIRST.XAML

<ListBox ItemsSource="{Binding Items}" x:Name="newsList" 
   ItemTemplate="{StaticResource NewsListTemplate}"
   Margin="-2,86,2,0" SelectionChanged="openNewsViewer" 
   Height="361" VerticalAlignment="Top" d:LayoutOverrides="GridBox"
/>

问题是,当我第一次单击列表项时,一切正常,它调用SECOND.XAML正确,但是,当我返回FIRST.XAMLfrom时SECOND.XAML,我无法重新单击同一ListBox项目!

但为什么?

这里的C#代码:

private void openNewsViewer(object sender, SelectionChangedEventArgs e)
{
    var listbox = (ListBox)sender;
    var entry = (ItemViewModel)listbox.SelectedItem;

    Navigate(entry.Link, entry.LineOne, true);
}

private void Navigate(string url, string title, bool showAppBar)
{
    var uri = "/NewsViewer.xaml?idx=" + url + "&title=" + title + "&appbar=" + (showAppBar == true ? "true" : "false");
    NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}

就是这样!

有什么想法可以解决这个问题吗?
谢谢!

编辑 1:
第二次单击同一行NOT CALL openNewsViewer。这可能是 XAML 文件中的问题?

请帮我。
谢谢^2!

4

1 回答 1

0

问题是您的事件在页面重新加载时触发(当您的列表框创建时 selectedItem 已更改)。

您可以使用 ManipulationStarted 事件。

于 2011-05-31T23:39:54.690 回答