2011-04-12 184 views
2

我想在if條件的基礎上綁定按鈕的樣式。我創建的視圖模型和綁定一個字符串屬性到按鈕的樣式屬性是這樣的:在DynamicResource ResourceKey中綁定wpf mvvm

<Button x:Name="copd" Content="COPD" 
    Command="{Binding COPDReadingsCommand}" 
    Style="{DynamicResource ResourceKey={Binding CheckCopd}}" 
    HorizontalAlignment="Center" VerticalAlignment="Center" 
    Margin="20" FontWeight="Bold" /> 

我通過ResourceDictionary中循環,並讓所有的鑰匙。使用,如果否則我改變字符串屬性值(CheckCopd),如果否則。

我得到所需的值,如果其他但風格沒有得到應用到按鈕,當我執行我的應用程序。它只顯示通用按鈕樣式。

如何綁定DynamicResource?

請推薦?

謝謝。

+0

如果你能證明一點關於你想什麼來完成,那麼這將是更容易顯示一個可行解。 – CodeNaked 2011-04-12 13:37:58

+0

我想在第一次加載wpf應用程序的基礎上改變按鈕的樣式。在使用if加載的應用程序中,將會有一種樣式的按鈕,而在其他部分中,會有另一種樣式。風格不過是一個形象。

+0

你可以發佈你的兩個樣式或修剪版嗎? – CodeNaked 2011-04-13 11:20:53

回答

2

您不能在DynamicResource屬性上使用綁定,因爲它不是從DependencyObject派生的。您需要直接從代碼隱藏設置Style屬性,或者只使用Binding。

您可以使用按鈕類型的樣式,該類型具有基於自定義屬性的DataTrigger,該屬性可動態更改外觀。但在這種情況下,你需要一個Style,它根據你的條件改變它的設置者。它不會允許您動態更改Style屬性本身。

+0

這個,但我認爲你需要向他展示一個小例子。 – Will 2011-04-12 13:32:30

+0

@CodeNaked ...請提供一些示例。 – Tarun 2011-04-13 04:28:41