App.ViewModel.RefreshItems();
lbFruit.ItemsSource = App.ViewModel.ItemCollection;
У меня есть дубликаты в коллекции ItemsCollection.В моем списке я хотел бы только показать уникальные значения.Как бы я просто взял их для отображения?
Мне нужно показать больше данных здесь .. .
В моей коллекции у меня есть 1 набор данных, который может содержать дубликатыопределенных свойств в коллекции ..
В моей модели зрения, скажем, у меня есть фрукты и овощи в качестве свойств.
Я мог бы иметь:
ItemCollection [0] .fruit= "Apple" ItemCollection [0] .vegetable = "Carrot"
ItemCollection [1] .fruit = "Pear" ItemColection [1] .vegetable = "Морковь"
ItemCollection [2].fruit = "Apple" itemCollection [2] .vegetable = "Зеленая фасоль"
Если я хочу отображать только список фруктов в моей коллекции, как бы я сделал это без дублирования?
Например, у меня может быть несколько фруктов и овощей в моей коллекции.Если я показываю только фрукты в своем списке, как я могу показать только: Яблоко, Груша, Апельсин
Больше Код:
Когда я делаю отличное, как предложено ниже: lbFruit.ItemsSource = App.ViewModel.ItemCollection.Select (item => item.fruit) .Distinct ();
Я получаю 2 * (* - это моя пуля для списка и находится вTextBlock в DataTemplate).
Так что технически Distinct работает, но текст не отображается рядом с *.Как вы можете видеть, есть также ProductNumber, который я не показывал в исходном примере.Однако, когда я удаляю это, я все еще получаю те же 2 *.
Есть ли что-то, что мне нужно сделать на стороне XAML, чтобы сделать отличную работу?Кроме того, если бы я хотел отобразить номер продукта, как бы я добавил это к вышеприведенному выбору (если мы сможем заставить его работать)?
<ListBox x:Name="lbFruit" ItemsSource="{Binding ItemCollection}" SelectionChanged="lbFruit_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
<TextBlock FontFamily="Segoe WP Semibold" FontWeight="Bold" FontSize="30" VerticalAlignment="Top" Margin="20,10">*</TextBlock>
<StackPanel>
<TextBlock x:Name="ItemText" Text="{Binding Fruit}" FontSize="{StaticResource PhoneFontSizeLarge}"/>
<TextBlock x:Name="ItemNumber" Text="{Binding ProductNumber}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Надеюсь, все это имеет смысл ... Спасибо залюбая помощь!