Как установить FontStyle TextBlock через Binding (MVVM) - PullRequest
0 голосов
/ 06 июля 2018

Мой код XAML:

<TextBlock Text="{Binding Name}" Foreground="{Binding FontColor}" FontStyle="{Binding FontStyleTreeItem}"/>

Snipped код класса TreeItem:

public System.Windows.FontStyles FontStyleTreeItem {get;set}

Я хочу присвоить свойству "FontStyleTreeItem" что-то вроде:

treeItem.FontStyleTreeItem = System.Windows.FontStyles.Italic;

Но это не работает, потому что "System.Windows.FontStyles" является статическим. Но я не могу понять, как дать хорошее решение для установки вышеуказанного свойства.

Я также попытался установить свойство как FontStyle, поэтому без s в конце (FontStyle s ), но тогда стиль шрифта текстового блока не изменится.

public FontStyle FontStyleTreeItem { get { return FontStyle.Italic; } }

Может кто-нибудь увидеть, что мне не хватает?

Уже спасибо.

1 Ответ

0 голосов
/ 06 июля 2018

Тип имущества должен быть System.Windows.FontStyle. Он по-прежнему может возвращать статическое значение, например FontStyles.Italic:

public System.Windows.FontStyle FontStyleTreeItem { get { return System.Windows.FontStyles.Italic; } }

Если вы определите свойство следующим образом:

public System.Windows.FontStyle FontStyleTreeItem { get; set; }

... вы можете установить любое значение FontStyle, например ::

FontStyleTreeItem = FontStyles.Italic;

Если вы устанавливаете его динамически во время выполнения, вам нужно реализовать интерфейс INotifyPropertyChanged для изменения стиля шрифта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...