1

我阅读了有关在 Windows Phone 应用程序上使用 TabControl 的文章。我可以避免它在第一次加载时着火。但是,当用户单击选项卡时, selectionChanged 会触发两次。有人可以帮助我如何解决它。提前致谢。

有我的 TabControl:

<cc:TabControl Grid.Row="1" SelectionChanged="tabList_SelectionChanged" x:Name="tabList">
        <cc:TabItem Height="80" Header="Events" Foreground="Black"/>
        <cc:TabItem Height="80" Header="Details" Foreground="Black"/>
        <cc:TabItem Height="80" Header="Notes" Foreground="Black" />
    </cc:TabControl>

后面有cobe:

 public partial class Tab : PhoneApplicationPage
{
    private bool blnFristLoad=true;  
    public Tab()
    {
        InitializeComponent();
        tabList.SelectionChanged += new SelectionChangedEventHandler(tabList_SelectionChanged);
    }

private void tabList_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        if (blnFristLoad == false)
        {
            TabItem t = (sender as TabControl).SelectedItem as TabItem;
            t.Content = "202020";
                       }
        else blnFristLoad = false;                



    }
4

2 回答 2

1

这在您的代码中非常明显。您正在添加 SelectionChanged 事件处理程序两次。一个来自您的 XAML 代码,另一个来自后面的代码。当您使用 += 符号时,事件处理程序将作为单独的实例添加。

删除其中一个语句。

于 2012-08-28T18:37:16.220 回答
1

请使用 Pivot 控件而不是 WindowsPhone 的 TabControl。Pivot 控件遵循手机的设计指南,外观和感觉都更好。

于 2012-08-28T19:27:10.897 回答