Click here to Skip to main content
15,891,372 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
Hi guys,

So I am working on a routine that validates and imports some data between two systems.

both routines output their results into a list of objects and I am trying to bind to this list in my GUI.

What I would like to achieve is that each type of result, be it a validation result or an import result to have its own data template.

For example:

Validation result should look like this:

HTML
 Number : Result


And import result should look like this:

HTML
Source No: Imported No: Printed


The issue I have is that my data template does not appear to be selected and I'm not sure why.

XML
<ListView ItemsSource="{Binding Path=Results}">
	<ListView.Resources>
		<DataTemplate DataType="{x:Type customTypes:ValidationResult}">
			<StackPanel Orientation="Horizontal">
				<TextBlock Text="{Binding Path=InvoiceNumber}" />
				<TextBlock Text="{Binding Path=ResultString}" />
			</StackPanel>
		</DataTemplate>
	</ListView.Resources>
</ListView>


I'm sure I am missing something obvious, but I'm not sure what.

At this time I have only devised the data template for the ValidationResult, but this is because only validation is currently adding its results to the Results collection.


-----------------------------------------
Refinement

Just to add some additional information here.

I might have a results list that looks like this:
HTML
ValidationResult
ValidationResult
ImportResult
ImportResult

My list view is bound to a property of type ReadOnlyCollection<object>
which contains the result list.

My data template shown above is one of two different templates I want to use when displaying the items. However, at this time, even that single template is not displaying data. I have a listview, that clearly has items in as there are selectable items shown on screen, however they do not use the templates and I'm not sure why.
Posted
Updated 1-May-13 6:28am
v3

1 solution

I usuall put the DataTemplate in a GridView control:
http://huydinhpham.blogspot.no/2008/11/using-listvew-to-display-complex-data.html[^]

or you could do it with the ItemsTemplate like this:
http://stackoverflow.com/questions/483542/listbox-with-itemtemplate-and-scrollbar[^]
 
Share this answer
 
Comments
Pheonyx 1-May-13 11:06am    
Having a look at the links, they dont really do what I need. The closest I've seen is the itemselector with itemtemplates, but I don't fully understand them.
Kenneth Haugland 1-May-13 11:20am    
I think you need to use the ItemsTemplate to make this work properly as you have specified in you XAML code. However, I could be wrong :-)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900