Хотя вспомогательное поле не выполняет никаких вычислений, оно используется для хранения значения свойства Age
. Это необходимо для того, чтобы вернуть значение в получателе и назначить новое значение в установщике. Если бы у вас его не было, что бы вернул геттер? Что бы сохранял сеттер?
Возможно, вы привыкли к автоматическим свойствам, где вы, кажется, не используете вспомогательное поле. Автоматические свойства - это сокращение, когда ваши методы получения и установки ничего не делают, кроме как возвращают и присваивают свойство. Однако, поскольку вы делаете что-то еще (то есть OnPropertyChanged("Age")
), вы не можете использовать автоматическое свойство и поэтому должны вручную кодировать метод получения и установки, используя вспомогательное поле. См. Автоматически реализованные свойства .
Сомнение при тихой необходимости в этом, но для всех, кто раздражается этой функцией акселератора, переходит в...
Инструменты> интернет-Опции> Усовершенствованный
Затем снимите флажок для "Кнопки Display Accelerator на выборе", при "Просмотре".
Удачи.
Хотя я сопереживаю Вам (я не думаю, что существует любой способ отключить их в коде), я отговорил бы от использования, дважды щелкают для большого количества Вашего пользовательского интерфейса, поскольку это идет вразрез с парадигмой сети.
Многим пользователям говорят на сайтах не дважды щелкнуть для предотвращения дублирующихся транзакций и т.д.
Единственная вещь, о которой я могу действительно думать как обходное решение, состояла бы в том, чтобы сделать своего рода явное:
.blur();
на элементе, который инициировал событие двойного щелчка. Я не попробовал это, но я надеялся бы, что это заставит значок акселератора исчезнуть.
Вы можете использовать настраиваемое событие Internet Explorer selectstart с return false, чтобы предотвратить отображение этого уродливого значка среза.
update: Я видел несколько решений, которые включают что-то вроде getElement -> добавить их событие слушатель. Это не идеальное решение. Лучше использовать пузырение. Просто зарегистрируйте один элемент selectstart в документе, этого достаточно.
Использование JQuery:
$('body').bind('selectstart', function(e) { return $(e.target).is(':input'); });
Это отключит выбор содержимого страницы, за исключением элементов ввода.
Возможно, на веб-сайте мы можем заблокировать ускорители, добавив атрибут oncontextmenu = "return false:" в элемент body. Я сомневаюсь, что здесь стоит двоеточие, и, возможно, слово «false» - это все, что нужно для значения. Учитывая, когда был предоставлен совет, это было для бета-версии; Я не знаю, есть ли в финальной версии IE8 такой же метод отключения. У меня нет IE8 или недавнего Win, поэтому я не могу его протестировать. Это может привести к блокировке всех контекстных меню, а не только тех, которые относятся к просматриваемому веб-сайту. См. Последнее сообщение в http://www.utteraccess.com/forums/showflat.php?Cat=&Board=50&Number=1804672&Zf=&Zw=&Zg=0&Zl=a&Main=1804672&Search=true&where=&Zu&Zu=140925 & Zt = 15 & Zs = b & Zy = # Post1804672 & Zp = по состоянию на 20.08.09.
О том, являются ли веб-сайты, допускающие двойные щелчки, плохой идеей: это нормально, если о них рассказывают посетителям, оба посетителя, которые хотели бы получить преимущество двойного щелчка и посетителей, которым нужно знать, что нельзя дважды щелкать, чтобы избежать нежелательных эффектов. В противном случае я сомневаюсь, что они удобны в использовании.
Спасибо.
- Ник
В моем случае, когда я отслеживал события mousedown / mousemove / mouseup, выскакивал ускоритель. Чтобы предотвратить это, я убрал выделение документа при наведении курсора мыши.
if (document.selection)
document.selection.clear();