2013-01-07 204 views
1

綁定我與Windows Phone 7的開發另一個問題。我正在創建帶有項目和一個文本塊的列表框,這就像鏈接到另一個頁面。每個鏈接都會有另一個「頁面」變量值。在頁面導航

<TextBlock Tap="TextBlock_Tap" Foreground="#FF40AA2F" Text="View details"> 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="MouseLeftButtonDown"> 
        <ec:NavigateToPageAction TargetPage="/details.xaml?page={Binding Index}" /> 

       </i:EventTrigger> 
      </i:Interaction.Triggers> 
</TextBlock> 

但它不適用於targetpage中的當前值,因爲Visual Studio會像普通字符串一樣使用它。我怎樣才能在頁面變量中嵌入這個綁定?謝謝

回答

1

嘗試使用的StringFormat:

<ec:NavigateToPageAction TargetPage="{Binding Path=Index, StringFormat='/details.xaml?page={0}'}" /> 
+0

調試器說,在地方的零是錯誤: 「預期'」。並且在單詞「page」之後的位置期待「}」。怎麼了 ?你的想法很好,但我不知道如何使它工作。 –

+0

@ŁukaszWróblewski你可以嘗試圍繞帶引號的StringFormat參數嗎? 'TargetPage = 「{綁定路徑=指數的StringFormat = '/ details.xaml?頁= {0}'}」' –

+0

我解決了在代碼隱藏的方式問題。這是TextBlock_Tap: Person數據=(發送者作爲TextBlock的).DataContext作爲人; ListBoxItem pressedItem = this.listBox.ItemContainerGenerator.ContainerFromItem(data)as ListBoxItem; 如果(pressedItem!= NULL){ MessageBox.Show(data.Index); } 它做同樣的,因爲我在XAML方式通緝。但是,謝謝你們:) –

0

做導航,而不是一個觸發器,但在文本塊的MouseLeftButtonDown事件背後的代碼,並從列表框中的當前選擇提取目標頁面。