2016-06-03 2 views
0

내 UWP 앱 개발에 문제가 있습니다. 1 페이지의 버튼 1이 눌려지기를 원할 때 : Page 2가 열리고 sqlite 연결이 만들어진 다음 목록보기에 데이터가 표시됩니다. 현재C# UWP 다른 페이지에서 액션 실행

나는 sqlite가 연결 2 페이지에 버튼이 있으며 목록보기를 채우고하지만 내가 말하는대로 페이지에 버튼 하나에 의해 그것을 할 수 있어야 1.

버튼 표시 목록보기 :

2 페이지의
private void buttonShowList_Click(object sender, RoutedEventArgs e) 
     { 
      SQLiteConnection dbConnection = new SQLiteConnection("Database.db"); 
      string sSQL1 = @"CREATE TABLE IF NOT EXISTS Metrados_Head 
           (ID INTEGER PRIMARY KEY Autoincrement NOT NULL 
           , A VARCHAR (255) 
           , B VARCHAR (255)        
           );"; 

      ISQLiteStatement cnStatement_Head1 = dbConnection.Prepare(sSQL1); 
      cnStatement_Head1.Step(); 
      string sSQL2 = @"INSERT OR REPLACE INTO Metrados_Head ([ID], [A], [B], [C], [D], [E], [F]) VALUES (1,'1','2','3','4','5','6');"; 
      ISQLiteStatement cnStatement_Head2 = dbConnection.Prepare(sSQL2); 
      cnStatement_Head2.Step(); 
      var datos_Head = new List<Metrados_Head>(); 
      string sSQL3 = @"SELECT 
          [A], 
          [B], 
          FROM Metrados_Head"; 

      ISQLiteStatement dbState_Head1 = dbConnection.Prepare(sSQL3); 

      while (dbState_Head1.Step() == SQLiteResult.ROW) 
      { 
       string sA = dbState_Head1["A"] as string; 
       string sB = dbState_Head1["B"] as string; 

       Metrados_Head Datos_Metrados_Head = new Metrados_Head() { A = sA, B = sB}; 
       datos_Head.Add(Datos_Metrados_Head); 
      } 
      ListMetrados_Head.ItemsSource = datos_Head; 
} 

내 XAML : 페이지 2 라디오 버튼 내 MainPage 나는 창을 (Hamburguer 메뉴)에서

<Button x:Name="buttonShowList" Content="ShowList" HorizontalAlignment="Left" Margin="228,30,0,0" VerticalAlignment="Top" Visibility="Visible" Click="buttonShowList_Click" /> 
     <ListView x:Name="ListMetrados_Head" HorizontalAlignment="Left" Height="600" Margin="10,109,0,0" VerticalAlignment="Top" Width="1260" BorderBrush="Black" BorderThickness="1" Background="White"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
        <Grid Width="{Binding ElementName=ListMetrados_Head, Path=ActualWidth}" Padding="0" Margin="0" > 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="150" /> 
         <ColumnDefinition Width="150" /> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="40"/> 
        </Grid.RowDefinitions> 
        <TextBlock x:Name="TextBlock_A" Grid.Column="0" Text="{Binding Path=A}" TextWrapping="Wrap" /> 
        <TextBox x:Name="TextBox_B" Grid.Column="1" Text="{Binding Path=B}" TextWrapping="Wrap" /> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 

: (Portada 페이지 1이고 Metrados 페이지 2) :

private void HamburgerButtom_Click(object sender, RoutedEventArgs e) 
     { 
      MenuHamburgesa.IsPaneOpen = !MenuHamburgesa.IsPaneOpen; 
      HamburgerButtom.IsChecked = false; 
     } 

     private void GoBack_Click(object sender, RoutedEventArgs e) 
     { 
      GoBack.IsChecked = false; 
      if (ContentFrame.CanGoBack) 
      { 
       ContentFrame.GoBack(); 
      } 
     } 

     private void NavigateToPortada_Click(object sender, RoutedEventArgs e) 
     { 
      ContentFrame.Navigate(typeof(PagePortada)); 
      NavigateToPortada.IsChecked = true; 
     } 

     private void NavigateToMetrados_Click(object sender, RoutedEventArgs e) 
     { 
      ContentFrame.Navigate(typeof(PageMetrados)); 
      NavigateToMetrados.IsChecked = true;    
     } 

질문은 페이지 1의 버튼 1에서만 어떻게 할 수 있습니까?

private void GoToConnectPage_OnClick(object sender, RoutedEventArgs e) 
{ 
    Frame.Navigate(typeof(ConnectPage), "connect"); 
} 

을 그리고 두 번째 페이지에 OnNavigatedTo 방법에서이 매개 변수를 확인하십시오 :

답변

0

하나의 방법으로, 당신은 당신이 PAGE2하는 PAGE1에서 탐색 할 때, 예를 들어, 일부 특수 매개 변수를 전달할 수 있습니다

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var parameter = e.Parameter as string; 

    if (parameter != null && parameter.Equals("connect")) 
    { 
     // Connect here 
    } 

    base.OnNavigatedTo(e); 
} 

내가 잘못 본 것이 아니라면 문자열 만이 아니라 매개 변수로 개체를 전달할 수 있습니다.

+0

내 창에서 OnNavigatedTo가 사용 되었기 때문에 나는 할 수 없다고 생각합니다. – Julius

+0

어떤 창가요? 그것에 대해 자세히 설명해 주시겠습니까? –

+0

귀하의 ** 페이지 **에서 사용되었다는 것을 의미하는 경우 귀하의 필요에 맞는 내부 코드를 추가 할 수 있습니다. OnNavigatedTo 메서드를 표시 할 수 있다면 확실히 말할 것입니다. –