Como faço para obter System.Windows.ShowDialog () para retornar 'verdadeiro'?

StackOverflow https://stackoverflow.com/questions/505572

  •  21-08-2019
  •  | 
  •  

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.

Foi útil?

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 propriedade de ter um botão ser o botão "cancelar" para um formulário.

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top