Использование ViewModel - один из подходов к решению такого рода проблем.
Если ваши данные были сохранены в классе Item, вы должны создать ItemViewModel, чтобы обернуть Item для отображения в вашем элементе управления. Класс ViewModel будет реализовывать INotifyProperty, измененный для обновления отображения, и установщики будут вызывать событие PropertyChanged, передавая соответствующее имя свойства. Вы также можете вызывать события измененных свойств для столько взаимосвязанных измененных полей, сколько необходимо.
Предположим, вы хотите, чтобы Item.Description отображался в свернутом поле, когда описание пусто. Ваши свойства ViewModel могут выглядеть следующим образом
public string Description
{
get { return mItem.Description; }
set { mItem.Description = value; Notify("Description"); Notify("DescriptionVisibility"); }
}
public Visibility DescriptionVisibility
{
get { return string.IsNullOrEmpty(mItem.Description) ? Visibility.Visible : Visibility.Collapsed; }
}
В XAML свяжите текстовое свойство с Description, а свойство Visibility с DescriptionVisibility.