2016-11-05 11 views
0

私はUWPプロジェクトを作成しています。私はコンテンツを表示するためにlistviewを使用しています。 listviewにコンテンツを動的に追加し、正常に完了しました。 selectedIndexの値を常に-1に設定すると問題が発生します。選択したリストビューのインデックスを取得しますか?

  <ListView Name="MyListView" IsItemClickEnabled="False" SelectionMode="Single" SelectionChanged="MyListView_SelectionChanged_1"> 
        <ListView.ItemTemplate> 
         <DataTemplate> 
          <ListViewItem Height="80" Width="290" Tapped="ListViewItem_Tapped" Margin="-10,0,-10,0"> 
           <StackPanel Orientation="Horizontal" Margin="-10,0,-24,0" HorizontalAlignment="Right" Width="288" > 
            <Border Background="#E94F08" Height="75" Margin="0,0,0,0" Width="288" CornerRadius="50" > 
             <StackPanel Orientation="Horizontal"> 
              <Ellipse Height="68" Margin="5,0,0,0" Width="70" HorizontalAlignment="Left" > 
               <Ellipse.Fill> 
                <ImageBrush ImageSource="/Assets/4.jpg"/> 
               </Ellipse.Fill> 
              </Ellipse> 
              <TextBlock Margin="10,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Name }" Foreground="Black" FontSize="20"> 
              </TextBlock> 
             </StackPanel> 
            </Border> 
           </StackPanel> 
          </ListViewItem> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
+0

ちょうど注意:データテンプレートでListViewItemを使用する必要はありません。データテンプレート全体は、ListViewがアイテムを作成するときにListViewItemによってラップされます。 –

+0

私はまた、データテンプレート内でlistviewitemを使用しています。しかし、それは私の問題ではありません。私はselectedindexまたは選択された値を得る必要があります。私は助けてくださいそれらを得ることができません。@ MehrzadChehraz –

+1

提供されたコードは、少なくとも私にとっては問題を見つけるのに十分ではありません。 –

答えて

0

あなたがこれを行うことができ、

XAML

<ListView x:Name="listViewName" 
      IsItemClickEnabled="True" 
      SelectionMode="Single" 
      SelectionChanged="listView_SelectionChanged"> 
</ListView> 

C#

private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    int index = listViewName.SelectedIndex; 
} 

・ホープ、このことができます:)

0

をあなたが最初にすべきことは、削除されますテンプレート内のすべてを既にListViewItemにラップしているため、ItemTemplateからを削除してください。これを削除することで、誤ったタップイベントハンドラも削除されます。

次のステップでは、Falseの代わりにIsItemClickEnabled="True"を設定して、人々が実際にアイテムをクリック/タップできることをListViewに伝えます。 SelectionChangedイベントまたはItemClickedイベントのいずれも処理できません.2番目のイベントは、同じアイテムに対して複数のクリックが登録されていることもあります(必要な場合)。

私はあなたのXAMLを更新:あなたの代わりにインデックスののSelectedItemを必要とする場合には

<ListView Name="MyListView" IsItemClickEnabled="True" SelectionMode="Single" SelectionChanged="MyListView_SelectionChanged_1"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" Margin="-10,0,-24,0" HorizontalAlignment="Right" Width="288" > 
       <Border Background="#E94F08" Height="75" Margin="0,0,0,0" Width="288" CornerRadius="50" > 
        <StackPanel Orientation="Horizontal"> 
         <Ellipse Height="68" Margin="5,0,0,0" Width="70" HorizontalAlignment="Left" > 
          <Ellipse.Fill> 
           <ImageBrush ImageSource="/Assets/4.jpg"/> 
          </Ellipse.Fill> 
         </Ellipse> 
         <TextBlock Margin="10,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Name }" Foreground="Black" FontSize="20"> 
         </TextBlock> 
        </StackPanel> 
       </Border> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

、それはSelectedItemプロパティをバインドするかもしれない簡単です。バインドでMode = TwoWayを使用することを忘れないでください。

関連する問題