2016-04-27 10 views
0

Listviewでアイテムのインデックスを取得する際に問題が発生しました。私は、次のようなデータテンプレート内の子要素を持っている:ListViewで選択したインデックスをWindows phoneで見つけられません

<ListView x:Name="ptype_gw" Width="300" HorizontalAlignment="Left" ItemsSource="{Binding PropertyTypes}" > 

      <ListView.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="Auto" /> 
         </Grid.RowDefinitions> 
         <TextBlock Text="{Binding title}" Style="{ThemeResource menu_heading_green}" Grid.Row="0" /> 
         <GridView Grid.Row="1" ItemsSource="{Binding childs}" > 
          <GridView.ItemTemplate> 
           <DataTemplate> 
            <Grid> 
             <RadioButton Name="PropertyTypeRadio" Content="{Binding title}" Tag="{Binding}" GroupName="Types" Checked="RadioButton_Checked" Background="White" Foreground="Black" BorderBrush="Black" /> 
            </Grid> 
           </DataTemplate> 
          </GridView.ItemTemplate> 
         </GridView> 
        </Grid> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

は、今私は、ラジオボタンがチェックされるたびに、選択した項目のインデックスを取得する必要があります。私は次のコードを試しました:

var item = (sender as FrameworkElement).DataContext; 

      int index = ptype_gw.Items.IndexOf(item); 

しかし、それは私を助けませんでした。

+0

チェックボックスをオンにしたときにテキストボックスのコンテンツを取得することを意味しましたか? コード全体、つまりチェックされたイベントを共有していただけますか? デバッグして、アイテムが正確に選択されたアイテムを返すかどうかを確認しましたか? – ViVi

+0

あなたのコメントVishakhに感謝します。ラジオボタンのチェックでリストの選択されたインデックスを取得したいだけです。 –

答えて

0

これは非常に簡単です。 リストのSelectedItemをビューモデルのプロパティにバインドします。いいえ。SelectedItemと言ってください。ユーザーが項目を選択すると、SelectedItemプロパティに現在選択されている項目の詳細が保持されます。

あなたの要件に応じて、ラジオボタンをオンまたはオフのイベントに処理します。イベントが発生したら、SelectedItemプロパティを確認します。 私はMVVMの場合について話しています。

xaml.cs自体にコードを記述している場合は、ラジオボタンのチェックイベントでlistboxのselectedプロパティを直接取得します。

関連する問題