Esta base de código é mantida ativamente, mas não desenvolvida ativamente. Pull Pedidos com novos recursos terão uma chance muito pequena de se fundir. Em muitos aspectos, essa base de código é "feita".
Sinta -se à vontade para usar o código, mas evite ter esperanças de que ele tenha aspirações de ser algo além de atualmente.
O MVVM Dialogs é uma biblioteca que simplifica o conceito de abertura de diálogos de um modelo de exibição ao usar o MVVM no WPF (estrutura de apresentação do Windows). Ele permite que o desenvolvedor escreva facilmente testes de unidade para modelos de exibição da mesma maneira que os testes de unidade são gravados para outras classes.
A biblioteca construiu suporte para as seguintes diálogos:
Para abrir uma janela modal, decore a visualização com a propriedade em anexo 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 > Com a visualização registrada, o modelo de exibição agora é capaz de abrir uma caixa de diálogo usando a interface 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 ) ;
}
}
} Os diálogos no WPF que não herdam da Window são chamados de diálogos personalizados. Essas caixas de diálogo personalizadas são suportadas, mas para que DialogService saiba como interagir com eles, você terá que implementar a interface IWindow .
A caixa de diálogo MVVM é, por padrão, abrindo a caixa de mensagem do Windows padrão ou a caixa de diálogo de arquivo aberto quando solicitado. No entanto, isso pode ser alterado fornecendo sua própria implementação do IFrameworkDialogFactory para DialogService .
Para obter mais informações sobre os conceitos de diálogo MVVM e amostras estendidas sobre os assuntos, consulte o wiki.
Para o benefício de tudo o que pretendemos jogar bem com as estruturas MVVM existentes. Criar um novo aplicativo pode ser assustador. Muitas decisões precisam ser tomadas, e alguns erros são mais difíceis de corrigir do que outros. Para ajudá -lo no seu caminho, criamos um aplicativo de amostra usando algumas das estruturas MVVM populares existentes hoje, para mostrar como você integraria as caixas de diálogo MVVM nessa estrutura.
Atualmente, o aplicativo de amostra é implementado usando as seguintes estruturas.
Se sua estrutura específica não estiver entre os listados, crie uma nova solicitação de puxão e informe -nos.
O mundo está cheio de flocos de neve e todas as aplicações são únicas de alguma forma. O MVVM Dialogs não reivindica resolver todos os problemas relacionados a diálogos, mas é uma solução fantástica para a maioria dos aplicativos. O restante, os aplicativos que se desviam do caminho comum, podem exigir alterações específicas no comportamento da caixa de diálogo MVVM. Para aqueles que existem diálogos de MVVM contribuem. Um repositório com recursos e funcionalidade desenvolvido pela comunidade de código aberto, resolvendo necessidades muito específicas.
Se as caixas de diálogo MVVM, por algum motivo, não se encaixam no seu aplicativo, aumente um problema nas caixas de diálogo MVVM Contrib e veremos o que podemos fazer. Esses recursos são sempre implementados pela comunidade, mas pastoreados pelos mantenedores das caixas de diálogo MVVM.
Se você deseja incluir diálogo MVVM em seu projeto, poderá instalá -lo diretamente no NUGET.
Para instalar as caixas de diálogo MVVM, execute o seguinte comando no console do gerenciador de pacotes:
PM > Install-Package MvvmDialogsO MVVM Dialogs começou como um artigo sobre o CodeProject com sua primeira revisão publicada em maio de 2009. Naquela época, o MVVM ainda era novo e fresco, e a Light agora depreciada MVVM ainda não havia sido publicada. De fato, nenhuma das bibliotecas MVVM comumente usadas hoje existia naquela época. A caixa de diálogo MVVM foi necessária por necessidade de trabalhar com diálogos do modelo de exibição, uma reação ao fato de que, embora o MVVM fosse um padrão popular, o suporte para implementá -lo era bastante limitado.
Então, a publicação inicial foi há mais de 10 anos. Pense isso. Um projeto de código aberto que, após 10 anos, ainda é mantido e extremamente relevante com os lançamentos do .NET. Pegue isso tudo o que você está por aí alegando que o código de código aberto é volátil!
O MVVM Dialogs ganhou reputação suficiente para ser listado no Awesome .Net!, Em companhia de outras bibliotecas MVVM impressionantes.
Obrigado JetBrains por sua importante iniciativa para apoiar a comunidade de código aberto com licenças gratuitas para seus produtos.
