В сценарии MVVM модель Impegni создается из таблицы базы данных с использованием linq2sql.Форма Wpf отображает все поля «Impegni», и это достигается связыванием объекта, представленного моделью представления ImpegnoSelezionato типа «Impegni», с DataContext сетки, которая содержит все другие элементы управления пользовательского интерфейса.К сожалению, в форме необходимо отобразить еще несколько полей, и часть из них может быть непосредственно получена из модели (например, одно из них - логическое сравнение между двумя полями модели).Первое решение состоит в том, чтобы выставить другие свойства в модели представления.Из-за DataContext, установленного в Grid, каждому новому элементу управления, который показывает добавленные свойства в модели представления, нужно что-то вроде:
DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType= {x:Type Window}}, Path=DataContext.ActiveWorkspace}"
, что является для меня очень странным синтаксисом, и я не могу поверить, что нет ничего прощеuse.
Вторая идея, которая у меня возникла, - создать несколько расширений методов для модели Impegni.Этим методам не понадобится какой-либо параметр, и они будут эквивалентны методам получения свойств.
После некоторой работы в сети кажется, что единственный способ привязать элемент управления к методу вместо свойства - это использовать ObjectDataProvider, и я не смогуне узнать, что написать в ObjectType = "{x: Type ??} '
Третья идея состоит в том, чтобы обновить модель с некоторыми дополнительными свойствами, но, как я уже говорил, она поступает из базы данных dfatabase.таблица с использованием linq2sql: я новичок, и я не знаю, смогу ли я добавить дополнительные поля, которых нет в таблице базы данных.
Так что на момент написания статьи работала только первая идеяно я бы хотел что-нибудь чище. Есть предложения?
Спасибо, Филиппо