Como faço para obter System.Windows.ShowDialog () para retornar 'verdadeiro'?
Pergunta
Como faço para obter System.Windows.ShowDialog()
de retorno 'true'?
Eu sou um pouco novo para isso. Tipo de retorno de System.Windows.ShowDialog
é bool
? Supõe-se para voltar true
quando você bate Submit
e false
quando você bate Cancel
. Mas eu não sei como para designar qual Button
é o oficial botão enviar.
EDIT: Em uma nota relacionada, estou curioso para saber como ele pode retornar null.
Solução
http://msdn.microsoft.com/ en-us / library / system.windows.window.showdialog.aspx
ShowDialog retorna um Nullable <(Of <(T>)>) valor booleano que especifica se a atividade foi aceite ou cancelado. O valor de retorno é o valor da propriedade DialogResult antes de uma janela se fecha (ver DialogResult).
Basicamente, você decide, definindo o valor do DialogResult, não por bater um determinado botão - você decide o que o botão faz
.Outras dicas
Em WPF, definir o Button.IsDefault propriedade como true para especificar que um botão é o botão "enviar" para uma janela. Não estou 100% de certeza que isso fará com que a janela fechar com um DialogResult de verdade. Se isso não acontecer, você só precisa lidar com o evento Click assim:
this.DialogResult = true;
Editar
Da mesma forma, você pode usar o href="http://msdn.microsoft.com/en-us/library/system.windows.controls.button.iscancel.aspx" rel="noreferrer"> Botão
Editar 2
Acredito que a razão ShowDialog é anulável é que desde que é nula até o formulário é enviado ou cancelado, você pode testar para que se você estivesse assistindo ao diálogo em uma discussão de fundo. Eu não tentei isso, mas ele parece ser uma razão lógica para que eles introduzir uma terceira "desconhecido" (null) estado para a propriedade.
Se você definir DialogResult para true ShowDialog retorna verdadeiro, se você definir DialogResult para ShowDialog retorna false false se o diálogo é fechada sem definir DialogResult (o usuário clica no X vermelho no canto superior direito) ShowDialog retornará null.
Configuração IsDefault para true fará com que o botão para olhar um pouco diferente e pressionar enter vai "clique" este botão.
Se você definir IsCancel como verdadeiro o esc pressionando vai "clique" este botão.