2017-02-13 22 views
0

私はListViewを持っており、マウスを押したときにListViewを選択したい。 (ButtonsのClickModeプロパティに似ています)。解決策はありますか?ListViewでSelectionChangedを設定するuwpでClickmode = "pressed"

+0

あなたがしようとしたところ問題が発生しましたか? * ListView *の* SelectionMode *プロパティを試しましたか? – Romasz

+0

@Romasz私は、マウスが押されたときにListViewを選択したいのですが、これはClickModeプロパティを持つボタンに対してこれを持っていますが、ここではこのプロパティはListViewにありません。 ListViewテンプレートにボタンを入れて、そのClickModeプロパティを変更しようとしましたが、ListViewでクリックされたオブジェクトにアクセスできませんでした。あなたはSelectionModeプロパティを言ったと思います、それはClickModeではなく、単一のアイテムまたは複数のアイテムなどを選択するためのものです! – mohammadrezamajd

+0

SelectionModeをMultipleとして有効にすると、マウス/アイテムをクリックしてアイテムを選択できます。あなたはあなたの質問をよりよく説明しなければなりません。 – Romasz

答えて

0

私はマウスが解放されたときSelectionChangedがデフォルトであるトリガされたListViewのテンプレートにボタンを配置し、

そのClickModeプロパティを変更しようとしました。私たちはそれを変更することはできないようです。そこで、ListViewアイテムテンプレートにbuttonを置き、あなたの考えとしてクリックモードを変更したり、マウスを押したときにトリガーされるアイテムテンプレート内のコンテナに対してPointerPressedイベントを登録したりすることができます。

が、私はあなたがまだ選択した項目を取得するためにListViewSelectedItemのようなプロパティを使用することができますクリックされた項目にアクセスするには、リストビュー

にクリックされたオブジェクトにアクセスできませんでした。

<ListView Name="CategoryLIstView" Grid.Row="1" ItemsSource="{x:Bind categories}" HorizontalAlignment="Center" Margin="10" VerticalAlignment="Top" IsItemClickEnabled="True" SelectionChanged="CategoryLIstView_SelectionChanged" ItemClick="CategoryLIstView_ItemClick" PointerPressed="CategoryLIstView_PointerPressed"> 
    <ListView.ItemTemplate> 
     <DataTemplate x:DataType="local:Category"> 
      <StackPanel Margin="0" PointerPressed="StackPanel_PointerPressed"> 
       <StackPanel Orientation="Vertical" > 
        <TextBlock Text="{x:Bind Name}" Foreground="Blue" FontWeight="Bold" FontFamily="Yu Gothic" FontSize="17"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

コードの後ろ

XAMLコード:たとえば

private async void StackPanel_PointerPressed(object sender, PointerRoutedEventArgs e) 
    { 
     await new Windows.UI.Popups.MessageDialog("point press").ShowAsync(); 
     System.Diagnostics.Debug.WriteLine(CategoryLIstView.SelectedIndex); 
    } 
関連する問題