我正在使用Caliburn Micro作为Windows Phone应用程序。我有一个超链接控件,我想将click事件绑定到我的View Model。以下是示例代码
XAML,MyPage.xaml
<TextBlock>
<Run>Got to</Run>
<Hyperlink micro:Message.Attach="[Event Click] = [Action OpenAnotherPage]">
My Page</Hyperlink><Run Text="."></Run></TextBlock>
ViewModel MyPageViewModel.cs
public void OpenAnotherPage()
{
// some code
}
当我点击链接时,我得到一个例外
System.Exception:找不到方法
的目标
可能是什么问题?
更新1:尝试在超链接控件上设置micro:Action.TargetWithoutContext="{Binding ElementName=MyPage, Path=DataContext}"
,但它没有工作
答案 0 :(得分:0)
为TextBlock指定一个名称,并将其用作ElementName,因为您将Hyperlink嵌套到该控件中。然后Update1应该工作。
答案 1 :(得分:0)
尝试以下XAML(未经测试):
<Hyperlink>My Page
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ec:CallMethodAction TargetObject="{Binding}" MethodName="OpenAnotherPage" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Hyperlink>
命名空间如下(您需要引用这两个程序集,它们由Microsoft提供,并随MS Expression Blend一起提供)
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ec="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"