Подтвердить что ты не робот

Как получить System.Windows.ShowDialog(), чтобы вернуть "true"?

Как мне получить System.Windows.ShowDialog() для возврата 'true'?

Я немного новичок в этом. System.Windows.ShowDialog Тип возврата bool? Предполагается вернуть true, когда вы нажмете Submit и false, когда вы нажмете Cancel. Но я не уверен, как указать, какая Button является официальной кнопкой отправки.

EDIT: В связи с примечанием, мне любопытно, как она может вернуть null.

4b9b3361

Ответ 1

http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx

ShowDialog возвращает значение Nullable < (Of < (T > ) > ) Булево значение, которое указывает была ли принята деятельность или отменен. Возвращаемое значение значение свойства DialogResult перед закрытием окна (см. DialogResult).

В принципе, вы решаете, установив значение DialogResult, а не нажав определенную кнопку - вы сами решаете, что делает кнопка.

Ответ 2

В WPF установите для свойства Button.IsDefault значение true, чтобы указать, что кнопка является кнопкой "отправить" для окна. Я не уверен на 100%, что это закроет окно с помощью DialogResult из true. Если это не так, вам просто нужно обработать событие Click таким образом:

this.DialogResult = true;

Edit

Аналогично, вы можете использовать свойство Button.IsCancel, чтобы кнопка была кнопкой "отменить" для формы.

Изменить 2

Я считаю, что причиной ShowDialog является nullable, так как он до нуля, пока форма не будет отправлена ​​или отменена, вы можете проверить это, если бы вы смотрели диалог в фоновом потоке. Я не пробовал это, но кажется логичной причиной, почему они ввели третье "неизвестное" (нулевое) состояние в свойство.

Ответ 3

если вы установите для параметра DialogResult значение true ShowDialog, возвращает true, если вы установите DialogResult на false ShowDialog вернет false, если диалог закрыт без установки DialogResult (пользователь нажимает на красный X в верхнем правом углу) ShowDialog вернет значение null.

Установка IsDefault в значение true приведет к тому, что кнопка будет выглядеть немного по-другому, и нажатие кнопки ввода будет "click" этой кнопки.

Если вы установите IsCancel в true, нажатие esc будет "click" этой кнопки.