如何订购从模型绑定到列表框的项目。
我定义的模型是:
public ObservableCollection<NotificationItem> Classes:
我需要通过分配给每个通知项目的ID来订购它。
目前我有定义:
<ListBox ItemsSource="{Binding Classes, Source={StaticResource model}}"
ScrollViewer.VerticalScrollBarVisibility="Visible"
DataContext="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我参考了模型:
<Model:ClassModel x:Key="model" />
更新
通过
完成模型的初始化 try
{
this.notifierModel = this.Resources["model"] as ClassModel;
this.classController.Initialize(this.notifierModel);
}
catch
{
// todo: handle exception
}
答案 0 :(得分:3)
您可以直接在模型上订购集合(数据上下文),也可以创建自定义CollectionViewSource并将ListBox绑定到该集合。
答案 1 :(得分:3)
您设置Classes
的位置需要:
Classes = new ObservableCollection(results.OrderBy(i => i.Id));
而不只是:
Classes = new ObservableCollection(results);
假设results
是您的查询返回的数据列表。