2012-01-31 23 views
0

嗨,基本上我已經能夠完全將我的邏輯分成視圖模型,但有一件事情是例外。我有一個按鈕和兩個可應用於按鈕的不同模板。基本上,當播放音頻時,會顯示一個模板,而不顯示其他模板。當我使用後面的代碼時很容易,因爲我可以訪問頁面的資源,我所要做的就是相應地設置它。現在我的代碼在虛擬機中,但我不確定如何更改模板。如何在WP7中從視圖模型中更改控制模板?

想到的是,也許將消息發送到視圖去改變它,當我需要的第一個念頭。這是唯一的方法嗎?我確實看到WPF有觸發器,這看起來相當不錯,因爲您不必發送消息,代碼也不會放在代碼後面。有沒有人找到解決這個問題的方法?

回答

1

你或許可以寫一ValueConverter會看一個public bool IsPlaying屬性,並將其轉換爲相應的模板。然後,您可以使用轉換器作爲翻譯器將您的Button模板屬性數據綁定到IsPlaying屬性。

我還沒有試過這個模板,但我用它來取得很大的成功BitmapVisibility,所以我很確定它會在這裏工作。

這裏有一個good intro to ValueConverter,如果你以前沒有使用過的。

也就是說,消息傳送是在此情況下,這種可怕的溶液。有時代碼只是想生活在代碼隱藏文件中。想到動畫開始/停止代碼是另一個例子。

相關問題