我正在寫一個Silverlight 4應用程序使用「Silverlight 4 Unleashed」作爲基礎。Silverlight 4回調積累與每個按鈕按
我有一個ChildWindow登錄用戶名,密碼和記住我。 OK按鈕使用RelayCommand綁定到我的AuthUserViewModel SignIn。
由於我剛剛開始,我還沒有任何數據驗證,並發現一些奇怪的事情。
如果我在我的登錄子窗口上單擊「確定」,我的Action回調告訴我在MessageBox中有無效憑證......這是完美的。我出於各種原因使用我自己的身份驗證服務。但是,如果我再次單擊「確定」,我的服務會被調用一次,但Action回調會被觸發兩次,告訴我我的憑據無效。如果我再次按下「OK」,服務被調用一次,但Action回調會被觸發三次,依此類推。
爲什麼會這樣做?
這裏是有問題的代碼:
public void SignIn(AuthUserDataModel authUser, Action<ErrorContainer> callback)
{
EnsureClient();
client.SignInCompleted += (sender, result) =>
callback(new ErrorContainer
{
AsyncException = result.Error,
CustomError = result.Result.CustomMessage //holds "Invalid credentials"
});
client.SignInAsync(authUser);
}
就像我說的,按鈕事件被觸發一次,Web服務被調用一次,但回調被觸發的量等於的次數我按OK 。
謝謝。
謝謝您的答覆和幫助。我在一夜之間睡了一覺,今天早上想出了一個解決方案,然後我看到了這個。再次感謝您的回覆。 – user506897 2010-11-14 14:21:12
我的不好...這並沒有解決我的問題。我會實施你的建議。謝謝 - D – user506897 2010-11-14 18:20:33
我去了選項1.謝謝! – user506897 2010-11-14 22:46:37