これは Book クラスの Book{BookId, Title, Category, Quantity} です。 では、linq クエリを使用して各カテゴリから 1 つのオブジェクトのみを選択するにはどうすればよいでしょうか? 私はこのようにしてみました、
this.catagoryList.DataContext = ldc.Books.Distinct(); //categoryList is a ComboBox
しかし、あなたはそれがうまくいかないことを知っています。これらのオブジェクトはすべて一意であるため、同じカテゴリが何度も表示されます。実際には GroupBy のようにしたいのですが、各グループからオブジェクトを 1 つだけ選択して、ComboBox に一意のカテゴリを表示したいと考えています。ありがとう。
XAML:
<DataTemplate x:Key="CatagoryTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Catagory}"/>
</StackPanel>
</DataTemplate>
...
<ComboBox Name="catagoryList" ItemsSource="{Binding}" ItemTemplate="{StaticResource CatagoryTemplate}" SelectionChanged="catagoryList_SelectionChanged" IsSynchronizedWithCurrentItem="True"/>
...