I figured out my problem. Didn't need to have the constructor inherit from the base it said it was redundant. The problem was actually in my converter. I use the same converter elsewhere in my code but when using it in the xaml it doesn't send it as a list it sends each individual item in the list and converts and returns.
In this case the converter actually sends it in as a list. I needed to have the converter check if it was a list and return a converted list.
I looked here to work out my answer.
Using converters to aggregate a list in a ListView[
^]
My code ended up being something like this.
Type ValueType = value.GetType();
if (ValueType.Name == typeof(List<>).Name) // Check if we're dealing with a list
{
List<String> dummy= new List<string>(); //create a new list to return
foreach (var item in (IList)value //iterate through the list
{
//calling a function to convert data and add it to the list
dummy.Add(somefunction((ItemType)item));
}
//return the new list
return dummy;
}