YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору iNNOKENTIY21 Цитата: любопытство к MVVM на PowerShell и показал другой вариант | Да, вариант другой, но не по содержанию, а по форме, т.е. по синтаксису и оформлению. В любом случае, там есть код, который получает данные и передает их в форму, причем данные получает и передает в те же самые объекты. Цитата: Как раз связи формы с кодом и хотелось бы избежать. В этом суть. | Ну, это вообще-то, невозможно, имхо. Описание формы, по сути, рисунок, а чтобы она работала, нужен код, так или иначе. Цитата: Что за вставка? Если про class ViewModel, то это родной PowerShell 5 с классами. | Да, конечно, но только "using" - директива C# Цитата: Директива using создает псевдоним для пространства имен или импортирует типы, определенные в других пространствах имен. | Т.е. в powershell это привнесли из C#/.Net, причем только уже в версии 5, как и классы... так что "родным", такой синтаксис назвать сложно, вот я и обзываю его "вставками" . Хотя, в принципе, это всего лишь, вопрос формулировок. В общем, принципиального значения, как обозвать этот прием, нет никакого. Цитата: смотрите на результат примера, что не правильно | Почему неправильно? Результат должен быть. И это, как раз, главное. Другое дело, что результат может быть разным, ибо ogv - малоуправляемый командлет, вариант с формой более гибкий. Цитата: пример показывающий свойство в классе, который о форме ничего не знает. | Да, сам класс, естественно, ничего не знает, но чтобы его задействовать, придется таки сообщить ему о форме. Код: $Window = [Windows.Markup.XamlReader]::Parse($xaml) | Разве нет? Это всего лишь упрощение записей в коде (и соответственно, упрощается доступ к dotnet), по принципу функций... Цитата: Реализация интерфейса INotifyPropertyChanged и должна обновлять. | И да, автообновления, как не было, так и в этом варианте его нет... т.е. потребуется другой способ, чтобы получить именно динамическую связь данных с формой, если она нужна без кнопок, событий и обработчиков этих событий. Чтобы происходило обновление, всё также потребуются таймеры, тики или ранспейсы с проксями. В общем, камень преткновения, всё тот же $VM. Сам по себе, автоматически, он не будет изменяться... потребуется внешнее воздействие. Цитата: Там одно только $Window.DataContext = $VM еще бы убрать… | Интересно было бы взглянуть, но, как и сказал выше, это вряд ли возможно. | Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 08:59 12-09-2019 | Исправлено: YuS_2, 10:07 12-09-2019 |
|