我使用MVVM,我來到了一個情況,我需要一個按鈕來觸發動畫。 所以我設置和EventTrigger它和它運行該動畫:束縛播放動畫不止一次
<DoubleAnimation
(...)
From="{Binding ElementName=Browser, Path=DataContext.TooltipPosition}"
To="150"/>
的問題是,我不希望這樣的動畫播放不止一次。所以,第一次按下按鈕後,它應該從0到150,併爲所有隨後點擊它不應該是可見的,所以應該從150到150
在我的ViewModel我有一個設置爲0。我創建了一個屬性TooltipPosition我的按鈕命令將該屬性設置爲150並調用。
PropertyChanged(this, new PropertyChangedEventArgs("TooltipPosition").
的問題是,這個屬性之後,第二次點擊改變,所以我可以看到這個動畫播放兩次。
我該如何解決這個問題?
CNC中
是啊,對不起,我沒有包括所有的信息。 我試圖動畫大量的對象只有其中一個是可見的。所以如果用戶在GUI中改變對象的選擇,那麼動畫應該再次從0開始到150。顯然,如果元素A是動畫的,然後是B,然後又是A,那麼這個動畫將不可見。
-edit2-
我設置了TextBlock的寬度。事情是我有多個(綁定數據)TextBlocks,只有一個或任何時候都不可見。所以我綁定每個TextBlock的寬度屬性,我動畫,所以基本上所有這些都受到這個動畫的影響。但只有其中一個可能是可見的,所以它的伎倆。
我不確定在您的ViewModel中包含純視圖相關的東西,如動畫等是個好主意。 MVVM並不意味着「後面的代碼中沒有代碼」。這意味着什麼不是純視圖相關的應該放在ViewModel中。 就個人而言,我會避免在特定使用情況下,使用綁定。 – ken2k 2012-07-13 10:31:13