저는 Pivot 템플릿을 사용하여 Windows Phone 7 응용 프로그램을 개발 중입니다. 이 응용 프로그램에는 메뉴 도구 모음이 있습니다 (물론 하단에 있음).Silverlight/WP7 : .NET에서 잘못된 이벤트를 호출합니다.
검색 버튼 (MenusButtonsApplication_Click
이벤트 - "하나"탭으로 이동)을 클릭하면 일부 요소가 포함 된 ListBox가있는 검색 페이지가 표시됩니다. 이 요소 (ListBoxFoobarSelectionChanged
이벤트) 중 하나를 클릭하면 다른 페이지로 리디렉션되어 세부 정보를 표시합니다. 나는이 방법을 사용한다.
검색 페이지로 다시 돌아가려면 검색 버튼 (MenusButtonsApplication_Click
이벤트)을 두 번 클릭해야합니다. 어떤게 정상이 아니야. 디버그 후 을 호출하는 동안 첫 번째 클릭이 ListBoxFoobarSelectionChanged
과 관련이 있음을 발견했습니다.
<phone:PhoneApplicationPage
x:Class="Test.Soft.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:Phone.Controls.Samples;assembly=Phone.Controls.Samples"
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
shell:SystemTray.IsVisible="True"
mc:Ignorable="d" d:DesignHeight="696" d:DesignWidth="480">
<!--Ressources application-->
<phone:PhoneApplicationPage.FontFamily>
<StaticResource ResourceKey="PhoneFontFamilyNormal"/>
</phone:PhoneApplicationPage.FontFamily>
<phone:PhoneApplicationPage.FontSize>
<StaticResource ResourceKey="PhoneFontSizeNormal"/>
</phone:PhoneApplicationPage.FontSize>
<phone:PhoneApplicationPage.Foreground>
<StaticResource ResourceKey="PhoneForegroundBrush"/>
</phone:PhoneApplicationPage.Foreground>
<Grid x:Name="LayoutRoot" Background="Transparent">
<controls:PivotControl x:Name="pvPrincipal" SelectedIndex="0" TitleTemplate="{StaticResource titleTemplate}" HorizontalAlignment="Left" Width="480" FontSize="22" DefaultItemWidth="480" FontStretch="Normal" Height="697" VerticalAlignment="Top" Margin="0,27,0,0" HorizontalContentAlignment="Left" IsEnabled="True" Visibility="Visible">
<!-- Recherche de comptes -->
<controls:PivotItem Name="pivotOne" Header="One" Loaded="PivotOne_Loaded">
<Grid Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="192*" />
<RowDefinition Height="423*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<ListBox Name="lbSearch" Width="462" Height="377" HorizontalAlignment="Left" BorderThickness="1"
VerticalAlignment="Bottom" SelectionChanged="ListBoxCompteSelectionChanged" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Padding="25,0,0,10" Text="{Binding FoobarCode}" Width="80" HorizontalAlignment="Right" />
<TextBlock Text="- " />
<TextBlock Text="{Binding FoobarDescription}" Padding="5,3,5,5" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Grid>
</controls:PivotItem>
<!-- Details -->
<controls:PivotItem x:Name="pivotDetails" Header="Details" >
<Grid Name="grDetail" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="398*" />
<RowDefinition Height="167*" />
</Grid.RowDefinitions>
<ListBox>
<StackPanel Margin="5,0,12,20" Grid.ColumnSpan="2">
<TextBlock FontSize="26" FontWeight="Bold"
FontStyle="Normal" Foreground="White" HorizontalAlignment="Left">Détail d'un compte</TextBlock>
</StackPanel>
<StackPanel Grid.Row="1" >
<TextBlock Text="{Binding Path= FoobarCode}" Name="tbCode" HorizontalAlignment="Left" FontWeight="Bold"/>
<TextBlock Text="{Binding Path= Description}" Name="tbDescription" FontWeight="Bold" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Grid.Row="2" >
</StackPanel>
</ListBox>
</Grid>
</controls:PivotItem>
</Grid>
<!-- ApplicationBar-->
<phone:PhoneApplicationPage.ApplicationBar >
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton x:Name="btnToPivotOne" IconUri="/Icons/appbar.plan.rest.png" Text="One" Click="MenusButtonsApplication_Click"></shell:ApplicationBarIconButton>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem x:Name="menuToPivotOne" Text="To pivot One" Click="MenusButtonsApplication_Click"></shell:ApplicationBarMenuItem>
</shell:ApplicationBarMenuItem>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
</phone:PhoneApplicationPage>
이 인터페이스를 갖는다 : 두 개의 탭 (원 및 상세)
- 피벗 (pcPrincipal)
이
는 XAML 코드버그가있는 두 가지 기능은 다음과 같습니다.
private void ListBoxFoobarSelectionChanged(object sender, SelectionChangedEventArgs e) { grDetail.DataContext = lbSearch.SelectedItem; lblDescriptionType.Text = mainVM.RetourneDescriptionTypeEncours(); pvPrincipalSelectedItem = pivotDetail; } private void MenusButtonsApplication_Click(object sender, EventArgs e) { if (sender is ApplicationBarIconButton) { switch ((sender as ApplicationBarIconButton).Text) { case "One": // Affichage pivot plan pvAccueil.Dispatcher.BeginInvoke(() => { pvPrincipal.SelectedItem = pivotOne; }); break; default: break; } } else { if (sender is ApplicationBarMenuItem) { switch ((sender as ApplicationBarMenuItem).Text) { case "To pivot One": pvAccueil.Dispatcher.BeginInvoke(() => { pvPrincipal.SelectedItem = pivotOne; }); break; default: break; } } } }
.NET 버그입니까? 어떻게 해결할 수 있습니까? 수동으로 발사해야합니까?
감사합니다.
좀 더 완벽한 예를 보여 주실 수 있습니까? –
코드를 추가해 주셔서 감사하지만 완료되지 않았습니다. 잘못된 XAML을 나타내고 CS는 XAML에없는 개체를 나타냅니다. –