对于我的Windows 8应用程序,我试图在页面之间导航而不使用后面的代码。 例如,我的UI中有一个图像而没有为该图像创建点击事件,我需要导航到另一个页面,
<Image Source="ms-appx:///Assets/Logo.png" Width="155" Height="110" Tapped="{ // Navigation method here }"/>
是否可以在这样的页面之间导航......?如果可能的话,我怎样才能让它发挥作用?
答案 0 :(得分:0)
XAML只是一种没有动作部分的声明性语言,因此代码背后是必要部分。 通过事件和事件工作的所有交互只能在后面的代码中处理。因此,XAML(至少使用WinRT XAML)无法实现您想要的功能。
答案 1 :(得分:0)
如果您询问是否可以在.xaml文件中指定代码,那么不,这是不可能的。
如果您在询问是否可以避免将代码添加到.xaml.cs文件中,那么是的,这是可能的。您仍然需要指定一个方法,但它甚至可以作为一个简单的lambda来完成。您将需要使用Command钩子而不是事件挂钩,例如
<Button Command="{Binding GoConnectionCommand}" ... />
此命令的代码通常在ViewModel中定义为MVVM模式的一部分,并Josh Smith explains it far better than I will。
答案 2 :(得分:0)
AlSki提到使用ViewModel。虽然从技术上讲,ViewModel不是XAML文件的“代码隐藏”的一部分,但它仍然是代码,我相信你要求的是无代码解决方案。
ixSci是正确的,没有办法在WinRT XAML中没有代码的情况下开箱即用。
在完整的WPF中,可以使用名为NavigateToScreenAction的行为来执行此操作。你可以阅读它here。不幸的是,行为不是WinRT开箱即用的,但是可以通过名为WinRtBehaviors的开源项目添加它们。
WinRT没有NavigateToScreenAction行为,但可以创建一个。有一篇关于使用库here创建行为的好文章。显然需要代码来创建行为,但在创建之后,您可以在XAML中使用它而不需要任何代码。
真的,简短的回答是,如果没有WinRT上的代码,就无法导航。
开发人员的支持,设计支持和更加出色的善意:http://bit.ly/winappsupport