Ok, first of all I am new to C# having only developed in C++ before so I am struggling with how to do certain things. Also I am building this app in WPF trying to use MVVM at the same time.

I have an app that works in C++ and am trying to convert to WPF / C#

the basic premise is that there is a binary data file. the basic structure of that file is as follows

string FileType
Int32 FileSize
Int32 Location of Header Data
[A block of Data that contains all the data elements]
A block of Header Data that itself is a set of headers telling you where each data elements begin and the length of them

Each data file can have any number of data elements (such as textures, sound files LOD maps etc) but not all elements are in each data file. the header data tells us what is in the file

What I want to do is to read this binary file into an object. Also I want to take each data element within the object (such as a set of textures) and load those into an object called textures. I then want the user to be able to edit any of the object data or write individual objects to files and finally to be able to save the original object back to disk.

The main WPF application has a simple menu with a file open, and file close and file exit. Once a file is loaded a set of buttons allows the user to either output certain elements to file eg. Extract textures from file. It also allows them to edit certain items such as texture properties, in such a case it pulls the texture properties from the texture properties data element and displays them to the user in a new window for editing. the user should them be able to save the changes and write the final main data object back to file.

I have got some of this to work as I build it out. for example I created an XML file of the texture properties manually and can load it, present it to the user in a window and it has 2 way binding within the MVVM, but I cant for the life of me figure out how to present binary data this way as after loading the binary data into an object a I cant seem to convert it to a list.

any advice and guidance greatly appreciated.

Andrew