2016-08-03 31 views
0

Hallo allerseits Guten Tag, ich habe Tabbed in Xaml erstellt, bevorzuge ich Xaml, weil ich mich in Xaml-Code anmelden. My-CodeSelectedItem in TabbedPage.xaml funktioniert nicht Xamarin.Form

Tab.xaml

<TabbedPage 
     xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:local="clr-namespace:FormsSample.Views;assembly=FormsSample" 
     x:Class="FormsSample.Views.LoginPage" 
     x:Name="TbPage"> 
    <TabbedPage.Children> 
     <ContentPage x:Name="TbLog" Title="Login"> 
     </ContentPage> 
     <ContentPage x:Name="TbSch" Title="Schedule"> 
     </ContentPage> 
     <ContentPage x:Name="TbLis" Title="Customers"> 
     </ContentPage> 
     </TabbedPage.Children> 
</TabbedPage> 

Tab.xaml.cs

namespace FormsSample.Views 
    { 
    public partial class LoginPage : TabbedPage 
    { 

     private readonly TabbedPage _tbPage; 
     private readonly ContentPage _tbList; 
     private readonly ContentPage _tbLogn; 


     public LoginPage() 
     { 
     InitializeComponent(); 
     _tbPage = this.FindByName<TabbedPage>("TbPage"); 
     _tbList = this.FindByName<ContentPage>("TbLis"); 
     _tbLogn = this.FindByName<ContentPage>("TbLog"); 
     RunTime(); 
     } 

     private void RunTime() 
     { 
       _tbPage.CurrentPage = _tbLogn; 
      if (_tbPage.SelectedItem == _tbPage.Children[2]) 
      { 
       DisplayAlert("Tab", "Hello World", "OK"); 
      } 
     } 

     } 

    } 

Wechsel zu

_tbPage.SelectedItem == _tbList 

Sein ähnliches nichts passieren, wie diese zu lösen? Danke vielmals.

+0

Es tut mir leid, aber es ist nicht direkt ersichtlich mir, was Sie erreichen wollen? Können Sie das näher ausführen? –

+0

@GeraldVersluis, was versucht zu erreichen, ist USER und Administrator Unterscheidung, sagen, wenn der Benutzer Zugriff auf diese Tablist es pop-up Nachricht sagen "Sie sind nicht berechtigt, auf die Liste zugreifen" –

+0

Vielleicht ist ein anderer Ansatz besser? Warum nicht die Registerkarte vollständig entfernen, wenn der Benutzer nicht darauf zugreifen kann? –

Antwort

0

Dies kann nicht extravagant sein, aber es funktioniert für mich: D

 this.CurrentPageChanged += (o, e) => 
     { 
      var i = this.Children.indexOf(this.CurrentPage); 
      if(i == 1 && UsrType == 2) 
      { 
       DisplayAlert("Admin", "Administrator Privilege required!", "OK"); 
       this.CurrentPage = _tbLog; 
      } 
     };