【发布时间】:2014-03-07 03:21:16
【问题描述】:
我正在尝试使用 WPToolkit、PRISM 和 MVVM 设计中的 HubTile 控件。我的问题是导航页面。
主页面模型
private string _navigationUri;
public string NavigationUri
{
get { return _navigationUri; }
set
{
if (_navigationUri != value)
{
NotifyPropertyChanging();
_navigationUri = value;
NotifyPropertyChanged();
}
}
}
MainPageViewModel
private void Navigate(string s)
{
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri(s, UriKind.RelativeOrAbsolute));
}
private DelegateCommand<string> _hubTileTap;
public DelegateCommand<string> HubTileTap
{
get { return _hubTileTap; }
}
_hubTileTap = new DelegateCommand<string>(Navigate);
XAML
<DataTemplate>
<toolkit:HubTile
Margin="10"
Size="Default"
Title="{Binding Title}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<i:InvokeCommandAction
Command="{Binding DataContext.HubTileTap}"
CommandParameter="{Binding NavigationUri}"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:HubTile>
</DataTemplate>
设置断点,我可以看到我的方法实际上从未触发。另外,老实说,我不能 100% 确定我是否设置了正确的方法,将字符串从 HubTile 对象传递给 DelegateCommand,然后再传递给 Method。
我对 MVVM、PRISM 非常陌生,并且仍然是编程的菜鸟。感谢您的帮助!
【问题讨论】:
标签: c# wpf mvvm windows-phone prism