我必须将 CommandBar 从加载到 MainPage 中的框架中的页面移动,其中存在 NavigationView。当我加载 CommandBar 所在的页面时,我实现了 AppBarButton 的可见性。如何引用传递给页面的参数以在现在位于 mainPage 的 AppBarButton 中使用?
AppBarButton 从数据库中删除一个对象,删除它使用在选择对象时传递给页面的对象的 ID。
我正在考虑使用 OnNavigatedTo 方法,但我没有加载 MainPAge,因为当我必须传递参数时它已经存在
这是 AppBarButton 所在页面的代码
public sealed partial class DetailsPage : Page
{
DatabaseHelperClass Db_Helper = new DatabaseHelperClass();
FFSystems currentSystem = new FFSystems();
private void DeleteSystem_Click(object sender, RoutedEventArgs e)
{
Db_Helper.DeleteFFSystem(currentSystem.ID);//Delete selected DB contact Id.
Frame.Navigate(typeof(Home));
}
}
我必须将DeleteSystem_Click
事件移动到当我移动到此页面表单navigationView
主页时出现的 MainPage AppBarButton。
这是 CommandBar 中的 XAMLMainPage.xaml
<Grid.Resources>
<Converter:VisibleOrNotInfoSystem x:Key="cvtDetails" />
</Grid.Resources>
<NavigationView x:Name="navView">
...
</NavigationView>
<CommandBar DefaultLabelPosition="Right"
Grid.Row="0"
Style="{ThemeResource CommandBarRevealStyle}"
Background="Transparent"
Margin="0,30">
<CommandBar.SecondaryCommands>
<AppBarButton x:Name="DeleteSystem"
Click="DeleteSystem_Click"
Label="Elimina Sistema"
Visibility="{Binding ElementName=ContentFrame, Path=Content.BaseUri.AbsoluteUri, Converter={StaticResource cvtDetails}}"/>
</CommandBar.SecondaryCommands>
</CommandBar>
AppBarButtonDeleteSystem
出现在CommandBar 先前所在位置的框架navigationView
上。DetailsPage.xaml
为此,我使用 IValueConverter:
public class VisibleOrNotInfoSystem : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
Uri uri = new Uri(value.ToString());
if (uri != null)
{
if (uri.Equals("ms-appx:///Views/DetailsPage.xaml"))
{
return Visibility.Visible;
}
}
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
DetailsPage.xaml
listViewItem
当我从 a中选择 a 时打开listView
,我在 DetailsPage 中传递项目的 ID,但现在我必须将 ID 传递给 MainPage CommandBar。