2016-04-14 15 views
0

Liste elemanları davranışını seçerken kendi mantığımı uygulamaya çalışıyorum. Bir seçeneği programatik olarak pozisyona göre vurgulamak istiyorum. Bir çalışma çözüm buldum:Evrensel Windows 10'daki ListView öğesini programatik olarak vurgulayın.

myListView.SelectedIndex = position;

Bu yöntem o liste öğesinin üzerine "sanal bir tıklama yapıyor" olduğunu, sadece programlı liste öğesi evidentiate ancak tıklamıyorsa gerekir. xaml

Benim liste görünümü uygulaması:

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

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

selecteditem'i vurgulamak ister misiniz? myListView.SelectedIndex = position-> bu belirli öğeyi seçer – Archana

+0

Vurgulamak istediğiniz belirli Liste Görünümü öğesi için görsel durumu seçili olarak değiştirebilirsiniz. – Archana

+0

Bu yöntemden bahsettim ama 'onListItemClick' yi kullandigimda tetikliyorum, dolayisiyla dolayis secimi olmayan görsel durumu degistirmeye ihtiyacim var –

cevap

1

Sadece şeyleri temizlemek için: Liste görünümünde bir öğe bir etkileşim aldığında

itemClick oluşuyor ve IsItemClickEnabled özelliktir doğru.

şu sıralar değişiklikleri zaman seçilen oluşur SelectionChanged (ListViewBase devralınmıştır).

Yani durumda xaml ItemClick="onmyListViewItemClick" kullanabilir ve myListView.SelectedIndex = position; dört ihtiyaçlarınızı

Yani

kullanarak tutmalı (Seçici devralındı), Lütfen xaml ListView olmak 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> 

ve tetiklenen öğe onmyListViewItemClick:

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

Vurgulanan öğeyi SelectionChanged olayını tetiklemeden değiştirmek için, ListViewItem ve IsSelected özelliği için kendi görsel durumunuzu uygulamanız ve SelectedIndex değiştirilmemelidir.

Seçim durumlarını uygulamak için, önce DataTemplate içinde kullanmak üzere UserControl oluşturun. Modeliniz için yeni bir özellik olan bool IsSelected oluşturun. Kullanıcı kontrolünde, hücrenizin VisualState s olduğunu beyan edersiniz ve kullanıcı kontrolünün DataContext'inin (modeliniz) IsSelected özelliği değiştiğinde durumu VisualStateManager kullanarak değiştirir.

İlgili konular