2014-09-26 4 views
0

Я разрабатываю одно приложение для хранилища Windows. Я реализовал один список. listview содержит элементы управления изображением, текстовым блоком и флажками. мой список просматривает данные из Интернета. Я провел разбор XML с помощью listview и привязанных данных к списку. Я хочу получить все данные из списка, где флажки отмечены в списке. мой XAML код:получить проверенные элементы listview, используя флажок windows store app C#

<ListView Name="display" ItemsSource="{Binding}" SelectionMode="Single" 
SelectionChanged="display_SelectionChanged" 
ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible" 
ItemContainerStyle="{StaticResource ListViewItemStyle12}" > 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
     <StackPanel x:Name="stak2" Orientation="Horizontal" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Vertical"> 
      <Image Source="{Binding Path=Image}" Width="450" Tapped="image_taped" /> 
      <CheckBox Tag="{Binding Path=tag}" Visibility="{Binding Path=visichk}" Height="40"  Name="addremove" 
       HorizontalAlignment="Center" Checked="add_checked" Unchecked="sub_checked" Opacity="0.5" 
       Background="White" VerticalAlignment="Top" Template="{StaticResource CheckboxImageTemplate}" > 
      </CheckBox> 
      <TextBlock Text="{Binding Image_code}" FontSize="25" Foreground="Gray" HorizontalAlignment="Center" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

DataSource для ListView:

XDocument xmlDoc = XDocument.Parse(responseString); 
var Categories = xmlDoc.Descendants("product").ToArray(); 
List<ProductData> displaylst = new List<ProductData>(); //ProductData is my Class. 

foreach (var cat in Categories) 
{ 
    string prId = cat.Elements("id_products").Select(r => r.Value).FirstOrDefault(); 
    List<string> Image = cat.Descendants("images").Elements("src").Attributes("largimage").Select(r => r.Value).ToList(); 

    List<string> Image_code = cat.Descendants("images").Elements("src").Select(r => r.LastAttribute.Value).ToList(); 
    int i = 0; 
    foreach (string img in Image) 
    { 
     displaylst.Add(new ProductData { Id = prId, Image = img, Image_code = Image_code[i] }); 
     i++; 
    } 
} 

display.ItemsSource = displaylst;    

Теперь на одной кнопке мыши я хочу, чтобы получить данные о продукте, как ИУП, изображения, Image_code где флажок проверяются с ListView и положите его в простой список.

как я могу это сделать, пожалуйста, помогите мне. заранее спасибо.

ответ

1

Сначала давайте добавим свойство к классу ИзделиеТехнического

public class ProductData 
{ 
    public string Id { get; set; } 
    public string Image { get; set; } 
    // I dont know exactly what's in this class 
    // ... more properties 

    // Add this one 
    public bool IsSelected { get; set; } 
} 

Теперь у нас есть логическое IsSelected в нашем классе ИзделиеТехнических мы можем знать, какие будут выбраны.

Во второго изменении Еогеаспа этой линия

// Set IsSelected to false by default 
displaylst.Add(new ProductData { IsSelected = false, Id = prId, Image = img, Image_code = Image_code[i] }); 

И привязать «IsChecked» свойство вашего флажка в IsSelected

<CheckBox IsChecked="{Binding Path=IsSelected}" Tag="{Binding Path=tag}" Visibility="{Binding Path=visichk}" Height="40"  Name="addremove" 
      HorizontalAlignment="Center" Checked="add_checked" Unchecked="sub_checked" Opacity="0.5" 
      Background="White" VerticalAlignment="Top" Template="{StaticResource CheckboxImageTemplate}" > 

С обязательными при проверке одного из флажка, в associed ИзделиеТехнического Свойство IsSelected станет «истинным» автоматически.

Итак, теперь вы просто должны сделать новый список и выбрать только ИзделиеТехнический где IsSelected верно:

List<ProductData> listOfSelectedProducts = (from product in displaylst 
              where product.IsSelected == true 
              select product).ToList(); 

Здесь вы идете вы получили список ИзделиеТехнический только с избранными продуктами.

+0

Спасибо. Как я могу реализовать Incremental Loading для этого приложения. пожалуйста помогите. –

Смежные вопросы