2015-10-07 57 views
0

我正在使用Caliburn Micro作爲Windows Phone應用程序。我有一個超鏈接控件,我想將click事件綁定到View Model。下面是示例代碼Windows Phone Caliburn Micro HyperLink單擊事件

XAML,MyPage.xaml

<TextBlock> 
<Run>Got to</Run> 
<Hyperlink micro:Message.Attach="[Event Click] = [Action OpenAnotherPage]"> 
My Page</Hyperlink><Run Text="."></Run></TextBlock> 

視圖模型MyPageViewModel.cs

public void OpenAnotherPage() 
{ 
// some code 
} 

當我的鏈接點擊,我得到一個異常

系統.Exception:沒有找到方法的目標

可能是什麼問題?

更新1:嘗試了超鏈接控制設置micro:Action.TargetWithoutContext="{Binding ElementName=MyPage, Path=DataContext}",但沒有奏效

回答

0

給TextBlock的名稱,並用其作爲的ElementName,因爲你有超鏈接嵌套入控制。然後Update1應該工作。

+0

試過了,但得到了同樣的錯誤 –

0

嘗試下面的XAML(未經測試):

<Hyperlink>My Page 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="Click"> 
       <ec:CallMethodAction TargetObject="{Binding}" MethodName="OpenAnotherPage" /> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </Hyperlink> 

的命名空間下(你需要引用這些組件2,他們是由微軟與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"