我希望有一个列表框,允许用户从数据库中提取20个项目,如果要提取的项目更多,则在列表框的最后一行显示提示。当用户点击最后一行时,应该从数据库中检索其他项目,直到没有更多项目,最后一行显示此信息。
首先:
listitem1
listitem2
...
listitem19
listitem20
Button: <get_more>
按下按钮后:
listitem1
listitem2
...
listitem39
listitem40
Info: <no more items>
这一切只能在XAML中完成吗? 实现这个目标的最佳解决方案是什么?
答案 0 :(得分:2)
Dude - 一切可以使用XAML完成:D
遵循MVVM方法,我建议您执行以下操作:
1 /入门:DockPanel
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Bottom" />
<ListBox />
</DockPanel>
2 /将ListBox
绑定到ViewModel中的ObservableCollection
:
<ListBox ItemsSource="{Binding ListElements}" />
在ViewModel中:
private ObservableCollection<String> _listElements;
public ObservableCollection<String> ListElements
{
get { return _listElements; }
set { _listElements = value; }
}
3 /将您的Button
内容绑定到预定义的String
:
<Button Content="{Binding ButtonString}" />
在ViewModel中:
public String ButtonString
{
get
{
//There, define if there are any more things to display
}
}
4 /您的Button
触发Command
启动方法,让我们说GetMore()
:
<Button Content="{Binding ButtonString}" Command="{Binding GetMoreCommand} />
在ViewModel中:
private void GetMore()
{
//append to the _listElements new elements from the list
//Update the ButtonString if there are no more elements
}
你去了!
(如果需要,您也可以定义一个按钮,例如从ObservableCollection
删除内容)