Эта кодовая база активно поддерживается, но не активно развивается. Запросы на вытягивание с новыми функциями будут иметь очень тонкий шанс на объединение. Во многих аспектах эта кодовая база «сделана».
Пожалуйста, не стесняйтесь использовать код, но воздержитесь от надежды на то, что он может быть чем -то большим, чем в настоящее время.
Dialogs MVVM - это библиотека, упрощая концепцию открытия диалогов из модели представления при использовании MVVM в WPF (Windows Presentation Framework). Это позволяет разработчику легко писать модульные тесты для моделей просмотра таким же образом, как для других классов записаны модульные тесты.
Библиотека встроена в поддержку следующих диалогов:
Чтобы открыть модальное окно, украсьте представление с помощью прикрепленного свойства DialogServiceViews.IsRegistered :
< UserControl
x : Class = " DemoApplication.Features.Dialog.Modal.Views.ModalDialogTabContent "
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns : x = " http://schemas.microsoft.com/winfx/2006/xaml "
xmlns : md = " https://github.com/fantasticfiasco/mvvm-dialogs "
md:DialogServiceViews.IsRegistered= " True " >
...
</ UserControl > С помощью зарегистрированного представления модель представления теперь способна открыть диалог с использованием интерфейса IDialogService :
public class ModalDialogTabContentViewModel : INotifyPropertyChanged
{
private readonly IDialogService dialogService ;
public ModalDialogTabContentViewModel ( IDialogService dialogService )
{
this . dialogService = dialogService ;
}
.. .
private void ShowDialog ( )
{
var dialogViewModel = new AddTextDialogViewModel ( ) ;
bool ? success = dialogService . ShowDialog ( this , dialogViewModel ) ;
if ( success == true )
{
Texts . Add ( dialogViewModel . Text ) ;
}
}
} Диалоги в WPF, которые не наследуют от Window , называются пользовательскими диалогами. Эти пользовательские диалоги поддерживаются, но для того, чтобы DialogService знал, как взаимодействовать с ними, вам придется реализовать интерфейс IWindow .
Диалог MVVM по умолчанию открывает стандартное окно сообщения Windows или диалог Open File, когда его просят. Однако это можно изменить, предоставив свою собственную реализацию IFrameworkDialogFactory для DialogService .
Для получения дополнительной информации о концепциях диалогов MVVM и расширенных образцов по предметам, см. Вики.
В интересах всего, что мы стремимся играть хорошо с существующими фреймворками MVVM. Создание нового приложения может быть пугающим. Необходимо принимать множество решений, и некоторые ошибки труднее исправить, чем другие. Чтобы помочь вам в своем пути, мы создали образце приложения, используя некоторые популярные фреймворки MVVM, существующие сегодня, чтобы показать вам, как вы бы интегрировали диалоги MVVM в эту структуру.
В настоящее время пример приложения реализуется с использованием следующих фреймворков.
Если ваша конкретная структура не внесена в список, пожалуйста, создайте новый запрос на привлечение и сообщите нам об этом.
Мир полон снежинок, и все приложения в некотором роде уникальны. Dialogs MVVM не претендует на решение всех проблем, касающихся диалогов, но является фантастическим решением для большинства приложений. Остальные, приложения, отклоняющиеся от общего пути, могут потребовать конкретных изменений в поведении диалога MVVM. Для тех, что есть вклад в диалоги MVVM. Репозиторий с функциями и функциональностью, разработанный сообществом с открытым исходным кодом, решения очень специфических потребностей.
Если диалоги MVVM по какой -то причине не соответствуют вашему приложению, поднимайте проблему в Dialogs MVVM, и мы посмотрим, что мы можем сделать. Эти функции всегда реализуются сообществом, но опускаются со стороны содействий диалогами MVVM.
Если вы хотите включить в свой проект диалоги MVVM, вы можете установить его непосредственно из Nuget.
Чтобы установить диалоги MVVM, запустите следующую команду в консоли диспетчера пакетов:
PM > Install-Package MvvmDialogsДиалоги MVVM начинались как статья о CodeProject с первой ревизией, опубликованной в мае 2009 года. В то время MVVM все еще был новым и свежим, а теперь устаревший свет MVVM еще не был опубликован. Фактически, ни одна из библиотек MVVM, обычно используемой сегодня, не существовала тогда. Диалоги MVVM возникли из -за необходимости работать с диалогами из модели представления, реакция на тот факт, что, хотя MVVM был популярным шаблоном, поддержка для реализации была довольно ограничена.
Итак, первоначальная публикация была более 10 лет назад. Подумайте об этом. Проект с открытым исходным кодом, который через 10 лет все еще сохраняется и чрезвычайно актуален с выпусками .NET. Возьмите это все, что вы претендуете на то, что с открытым исходным кодом нестабильный!
Dialogs MVVM заработали достаточно репутации, чтобы быть перечисленным на Awesome .net!, В компании с другими потрясающими библиотеками MVVM.
Спасибо Jetbrains за вашу важную инициативу по поддержке сообщества с открытым исходным кодом с бесплатными лицензиями на ваши продукты.
