WPF / Ayende Viewer: Part III
The application is now composed of three screens, main one (choose categories):
Select a post in a category:
And view the posts in a category:
Notice that you can page between the posts, this enables a very quick browsing experiance.
I commited the changes to the Rhino Tools repository (here), so you can see how I did it (not very complex). That data arrives from a sqlite database called ayende.blog using Active Record, of course.
Additional features that I want to add:
- Add search capabilities, so I would be able to search the content / titles. Probably using SQLite full text searches. Allow to view the page results and to page through them.
- Add tagging support, allow to browse the tags and page through tagged posts.
Not a lot of feature, eh?
Except that I have this list of things that I want to fix:
-
Give a uniform UI for the buttons in the first two screens, probaly on par with the prev/next links on the last screen. -
Figure out control templates and replace the links on the last screen with a real control (right now it is a TextBlock with an event on MouseDown). - Figure out how to factor the common header into a seperate header control.
- Add a column with the number of posts in each category.
- Use WPF Commands instead of doing things in the events.
-
Figure out a better way to do paging than just moving between all those pages.There are advantages to this approach, so I think that I will keep them. -
Put a meaningful title on the page, so the back button menu will look nice. - Put a Home button on the titlebar that will get you back to the main screen.
-
Figure out if an a really long chain of pages is a memory leak in the order that I should do something about.Yes, it is a memory leak, probably need to use KeepAlive=false, in which case the page will be discarded, and a new instance will be used when stepping back to it. As this is the default behavior, no need to do anything about it. -
Figure out if triggers can replace the checks for next item, prev item.There isn't a way to do this properly, because there is an if pos+1 == count invovled.
Comments
Comment preview