Я вижу, что вы не хотите переопределять ToString () в вашей модели , что имеет смысл. Но если вы привязываете свой View (код xaml) к Model , то вы упускаете преимущества наличия посредника: ViewModel .
В вашей ситуации я бы хотел обернуть отдельные элементы в ApplicationList с помощью ViewModel . Предположим, что ApplicationList является коллекцией типа ApplicationModel , поэтому, возможно, ObservableCollection . Если вы измените это на ObservableCollection <** ApplicationViewModel </strong>> , где каждый ** ApplicationViewModel имеет личную ссылку на ApplicationModel , вы можете сойти с ума с представлением этот объект. Вы можете добавить ToString , DateTime создания и все, что имеет отношение к пользовательскому интерфейсу, без необходимости использовать вашу модель .
.
public class ApplicationViewModel
{
private ApplicationModel _application;
private DateTime _creationDate;
public ApplicationViewModel(ApplicationModel application)
{
_application = application;
_creationDate = DateTime.Now;
}
public override string ToString()
{
return _application.ApplicationName + ", " + _creationDate.ToString();
}
}
Дело в том, что ни один класс не может коснуться вашего ApplicationModel класса, кроме как благодаря жесткому контролю над классом ApplicationViewModel , предоставляя вам полную возможность поиграть с вещами, относящимися к пользовательский интерфейс. Делайте это с каждым классом, и вы никогда не будете оглядываться назад. Еще одним бонусом является то, что вы можете очень легко протестировать классы Model , не мешая работе интерфейса.