Это похоже на проблему с памятью. Вам нужно удерживать ссылку на эту кнопку, иначе она будет освобождена в конце области. Попробуйте сначала определить кнопку в данном классе, а затем установить ее цель.
Для реального входа, который Вы могли сохранить и отследить, необходимо будет сделать это на сервере, так как Вам нельзя гарантировать, что-либо на клиенте будет сохранено.
Я предложил бы подвергнуть "LogEvent (..)" метод на серверном веб-сервисе (возможно, у Вас уже есть один), который затем сделал бы тот же вид входа Вас, делает в ASP.net
Вот видео об основных вызовах веб-сервиса в Silverlight, если Вы еще не сделали этого http://silverlight.net/learn/learnvideo.aspx?video=66723
Я не уверен ни в каких лучших практиках входа, хотя, мое первое предположение должно было бы приложить все усилия practicies для входа в систему веб-сервиса на сервер и выставить это клиенту.
Надеюсь, это поможет!
Я сказал бы, что Silverlight соответствует намного лучше стороне ASP.NET модели. У Вас есть сервер, который служит веб-странице. Объект (приложение Silverlight) на странице проверяет с помощью ping-запросов услугу передачи данных, чтобы выбрать данные и отобразить его.
Весь доступ к данным происходит на стороне сервера, и не имеет значения, если данные используются для создания страниц ASP.NET на сервере или отправляются сырые данные в RIA для дисплея. Я действительно регистрирую любые отказы в услуге передачи данных на стороне сервера (журнал событий хорошо работает), и не позволяйте никакому исключению передавать WCF. Когда клиент не получает ожидаемые данные (это получает пустой набор или что-то подобное), это отображает универсальную ошибку доступа к данным пользователю. Мы, возможно, должны расширить это скоро для передачи немного большей информации (различение доступа запрещен / недостающая база данных/инфраструктура ошибка/и т.д. failure/internal), но мы не планируем передать сообщения об ошибках исключения клиенту.
Что касается стороны клиента, иногда мы можем войти в ситуацию, где асинхронный вызов испытывает таймаут - это - просто другое сообщение. Для общих исключений из клиентского кода (обычно, ошибки в нашем коде), я просто передаю исключение браузеру для отображения тем же способом как любое исключение сценария.
Используйте Изолированное устройство хранения данных, доступное для приложения Silverlight. Необходимо сохранить здесь журнал.
Затем можно разработать mecanism для отправки пользовательского журнала в веб-сервис как сервис отчета об ошибках Windows.
Это очень зависит от типа приложения, которое Вы разрабатываете.
если mvc / основанная на MVP архитектура затем Ваша модель или большая часть из нее, по крайней мере, будет на сервере, и это - то, где большинство Ваших исключений будет выдано, я вообразил бы, таким образом, можно зарегистрировать их там и принять решение отобразить сообщение пользователю или нет.
для исключений от клиента можно хотеть знать, что детали поэтому просто передают их обратно.