2013-10-15 55 views
0

我有以下XAML被綁定到一個命令,但是我不知道我怎樣才能將信息傳遞到命令知道哪些項目被竊聽:你怎麼綁定命令跳轉列表LongListSelector在MVVM

<DataTemplate x:Key="OrganisationsItemTemplate"> 
      <StackPanel VerticalAlignment="Top" Margin="5,0,0,0"> 
       <Button ... Command = "{Binding LoadPage}"> 
        <Grid Margin="0,0,5,0"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="67"/> 
          <ColumnDefinition/> 
         </Grid.ColumnDefinitions> 
         <StackPanel Grid.Column="0" Background="Transparent"> 
          <Border Background="White" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5"> 
           <Image Source="{Binding image.thumbnail_link}" Width="62" Height="62"></Image> 
          </Border> 
         </StackPanel> 
         <StackPanel Grid.Column="1" VerticalAlignment="Center" Background="Transparent"> 
          <TextBlock Text="{Binding name}" HorizontalAlignment="Left" FontSize="30" VerticalAlignment="Center" Margin="0,0,0,5" /> 
         </StackPanel> 
        </Grid> 
       </Button> 
      </StackPanel> 
     </DataTemplate> 

這些跳轉列表中的項目將有望打開一個新的xaml頁面,它將顯示特定於我選擇的項目的詳細信息。例如,如果我選擇可口可樂作爲組織,應該再展Detail.xaml將名單上的可口可樂組織(該組織ID獲取)的細節。

如果您建議我使用hyperlinkbutton相反,你有一個例子,如果我把一個在,我得到以下錯誤:

+  ExceptionObject {System.ArgumentException: Value does not fall within the expected range.} System.Exception {System.ArgumentException} 

我認爲這是因爲我嵌套內的其他元素它......這是有點......我需要做什麼?

+1

難道你們就不能只是將信息傳遞到'Command'在'CommandParameter' –

+0

什麼什麼什麼。我不知道這是有..噢噢..在Bing上由於生病搜索(笑,冰) – Jimmyt1988

+1

有一個例子在這裏http://stackoverflow.com/questions/19352992/command-binding-doesnt-function-if-its-inside-an-item-template-of-a-listbox類似的問題昨天/ 19353052#19353052 –

回答

0

你應該通過一個CommandParameter你的指揮,並給它相關的對象。

<Button Command="{Binding LoadPage}" CommandParameter={Binding ElementName=ParentItem Path=DataContext}"> 
+0

什麼是的ElementName是指什麼? – Jimmyt1988

+1

ElementName引用具有x:Name的Visual Tree中的任何XAML節點。您應該給ItemsControl一個名稱並將其傳遞給ElementName,然後最有可能引用SelectedItem作爲Path(我沒有測試過它)。 –