模型:
假设我有Book
模型。
public class Book
{
public string Author { get; set; }
public string Title { get; set; }
public string Genre { get; set; }
public DateTime Published { get; set; }
}
另外,我有这样的DataService。它具有使客户端的书籍保持最新的事件:
public interface IBookService
{
List<Book> GetAllBooks();
// Book changed event.
EventHandler<BookChangedEventArgs> BookChanged;
// Book added/removed event.
EventHandler<BooksCollectionChangedEventArgs> BooksCollectionChanged;
}
WPF(MVVM)用户界面客户端:
我有BookViewModel
课(换行Book
)。我有一个与接口ObservableCollection<BookViewModel>
的某些实现同步的IBookService
。
所以,问题。有必要允许用户选择具有以下 UI的一本书(不是类型也不是作者) :
平面集合BookViewModel
应该以某种方式按顺序“分组”(或者我不知道如何正确称呼它):
- 流派。
- 作者(选定类型的)。
- 书籍(选定类型和选定作者)。
因此,每个级别都是其后代级别的大师。
此外,您可能会提到上一个/下一个按钮。他们应该浏览书籍级别(最后一本书):例如,如果选择了最后一本书并按下 Next(见图),则 UI 的下一个状态应该是:第二流派 => 第二作者 => 某本书(第二体裁和第二作者)。
如何实现如此复杂的 UI:多级分组?实现这种图书浏览器的最简单方法是什么?如果您能给我提供一些类似的例子,我将不胜感激。