Убедитесь, что вы возвращаете действительный JSON. Если это не так, и все идет правильно на сервере, $ .ajax приведет к ошибке, а не к успеху.
function FindContact(CompanyName,DivisionName,FirstName,LastName) {
$.ajax({
url: 'Path',
dataType: "html or json",
async:false,
type:'post',
data: {'FirstName':FirstName,'LastName':LastName,'DivisionName':DivisionName,'CompanyName':CompanyName},
success: DisplayContacts,
error: ErrorMsg
});
}
Чтобы проверить, является ли json действительным, достаточно просто переключить dataType на html и увидеть, что успех срабатывает. Если это так, то ваш json недействителен, если вы все еще получаете ту же проблему, что-то еще не так.
Другой способ проверить, возвращается ли действительный json, - открыть firebug и, когда запрос будет отправлен, щелкнуть по вкладке ответа, скопировать ответ и попасть на jsonlint.com, чтобы проверить, действителен ли он.
ItemsControl по сути является StackPanel с ItemTemplate. Он использует внутри StackPanel.
Однако похоже, что вы пытаетесь отобразить одного клиента, а не их список (я звучу как Клиппи, не так ли?). В этом случае вы хотите использовать ContentControl:
<ContentControl
Content="{Binding SelectedCustomer}"
ContentTemplate="{StaticResource CustomerTemplate}" />