WPF订单列表框项目

时间:2011-10-21 15:00:11

标签: wpf

如何订购从模型绑定到列表框的项目。

我定义的模型是:

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
            }

2 个答案:

答案 0 :(得分:3)

您可以直接在模型上订购集合(数据上下文),也可以创建自定义CollectionViewSource并将ListBox绑定到该集合。

答案 1 :(得分:3)

您设置Classes的位置需要:

Classes = new ObservableCollection(results.OrderBy(i => i.Id));

而不只是:

Classes = new ObservableCollection(results);

假设results是您的查询返回的数据列表。