2013-12-11 58 views
4

我想一個文本框的的FontFamily綁定到我在我的ViewModel綁定的FontFamily視圖模型的財產

這裏創建了一個屬性是我的XAML:

<TextBox Text="Test Font Binding" FontFamily="{Binding FontFirstContent}" /> 

在這裏,在我的ViewModel屬性:

public FontFamily FontFirstContent 
{ 
    get { return new FontFamily("Verdana"); } 
} 

加載視圖時,屬性的獲取器正確啓動,但未傳遞到視圖上。 我的視圖上的所有綁定都在工作,除了這個,所以我不明白它有什麼問題嗎?

編輯: 好吧,它工作正常!我只是工作的錯誤的FontFamily對象.. 我用:

System.Drawing.FontFamily 

不過的FontFamily的類型必須是:

System.Windows.Media.FontFamily 
+1

多數民衆贊成在奇怪的是,我設置了一個快速項目。這個對我有用。你是否正確設置了DataContext? –

+1

你可以粘貼你的viewmodel,xaml和查看代碼的代碼(如果有的話)? –

+0

它似乎也適用於我,如果我不使用ViewModel ..所以如果我把我的財產放在我的視圖的代碼後面並定義:DataContext = this;它正在工作。但是,如果我這樣做:DataContext = new MyViewModel();它不起作用。很奇怪.. – Arsenik

回答

1

這裏的東西我加入到旨在成爲一個ResourceDictionary我的應用程序的默認樣式:

<FontFamily x:Key="MyFontFamily">Segoe UI</FontFamily> 

當你想使用它,您將FontFamily屬性是這樣的:

<Label Content="Something" FontFamily="{DynamicResource MyFontFamily}"/> 

不要忘記把它放在ResourceDictionary或任何控制資源中。

希望它有幫助;

+0

我知道ResourceDictionary中的樣式,但在我的情況下,我必須在用戶執行某些操作時動態更改FontFamily。我粘貼的代碼不是我真正使用的代碼。我對我的吸氣劑做了其他一些測試。這就是爲什麼我在我的ViewModel中放置一個屬性。謝謝 – Arsenik

+0

您可以使用FindResource方法動態更改它。這正是我所做的。我有4個FontFamily,我改變「動態」 – Tico