I haven’t seen any examples of a record navigator in WPF so I decided to create one.
What it is:
- Allows you to bind to a collection of elements and navigate through each one.
What it isn’t:
- Currently it doesn’t have any hooks for styling.
- The Current Index is read-only and can only be navigated using the buttons.
The implementation is pretty straight forward. It uses routed commands to handle all the navigation. The trick to making the implementation simple was to forward everything on to a ListBox. The template contains a ListBox named “PART_List” which has it’s visibility set to Collapsed. This allows me to bind the TextBlocks that display the Count and Current Position directly to the ListBox. Also for all of the navigation commands, the Command Executed handlers simply forward their calls to the corresponding methods on the ListBox. The ListBox also just binds it’s ItemsSource and IsSynchronizedWithCurrentItem directly to the corresponding Dependency Properties on the RecordNavigator.
I hope this control is useful to some of you. I’ll be further refining it to support styling and allow the user to jump to a specific index. Please give me any feedback you have. If there is any bugs or anything it should do that it doesn’t, please let me know.
You can download the code here: record-navigator. Make sure to change the extension from .doc to .zip.