2016-04-14 12 views
0

リスト要素の動作を選択する際に独自のロジックを実装しようとしています。私は位置によってプログラム的に1つのオプションを強調したい。私は1つの作業ソリューションが見つかりました:ユニバーサルWindows 10のListView要素をプログラムで強調表示

myListView.SelectedIndex = position;

この方法は、そのリスト項目の「仮想クリックをして」されたが、私は、プログラムリスト項目をevidentiateが、それをクリックしないようにする必要があります。

XAMLで私のListViewの実装:

<ListView 
    x:Name="myListView" 
    SelectionChanged="onmyListViewItemClick" 
    SelectionMode="Single"> 

    <ListView.ItemTemplate> 
     <DataTemplate> 
      <--here I have 2 textBoxes and one image--> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

選択したアイテムを強調表示しますか? myListView.SelectedIndex = position->これは特定の項目を選択します – Archana

+0

強調表示する特定のListView項目に対して選択した視覚状態を変更することができます。 – Archana

+0

私はこのメソッドについて言及しましたが、使用するときに 'onListItemClick'をトリガーします。暗黙的な選択でビジュアル状態を変更する必要があります。 –

答えて

1

だけで物事をクリアするために:リストビュー内の項目が相互作用を受け、IsItemClickEnabled財産があるとき

によってitemClickが発生します本当。 ListViewBaseから継承されます。

SelectionChanged現在選択されている項目が変更されたときに発生します。 (セレクタから継承されます)

あなたのケースでXAMLでItemClick="onmyListViewItemClick"を使用し、だから、myListView.SelectedIndex = position; 4ニーズ

を使用しておく必要がありますので、ご使用のXAML ListViewコントロールが可能shuold:

<ListView 
x:Name="myListView" 
IsItemClickEnabled="true" 
ItemClick="onmyListViewItemClick" 
SelectionMode="Single"> 

<ListView.ItemTemplate> 
    <DataTemplate> 
     <--here I have 2 textBoxes and one image--> 
    </DataTemplate> 
</ListView.ItemTemplate> 

とトリガーされた要素を取得するためonmyListViewItemClick

private void onmyListViewItemClick(object sender, ItemClickEventArgs e) { 
     var selectedOption = (YourObjectElement)e.ClickedItem; 
     //use your cliked obj data 
} 
0

SelectionChangedイベントを発生せずに強調表示された要素を変更するには、ListViewItemとIsSelectedプロパティの独自のビジュアル状態を実装し、SelectedIndexを変更してはなりません。

選択状態を実装するには、まずUserControlを作成してDataTemplateの内部で使用します。モデルの新しいプロパティbool IsSelectedを作成します。ユーザーコントロールでセルのVisualStateを宣言し、ユーザーコントロールのDataContext(モデル)のIsSelectedプロパティが変更されたときにVisualStateManagerを使用して状態を変更します。

関連する問題