c# - 如何通过绑定 (MVVM) 设置 TextBlock 的 FontStyle
问题描述
我截取的 XAML 代码:
<TextBlock Text="{Binding Name}" Foreground="{Binding FontColor}" FontStyle="{Binding FontStyleTreeItem}"/>
截取代码类 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; } }
有人能看到我错过了什么吗?
已经谢谢了。
解决方案
属性的类型应该是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接口才能改变字体样式。
推荐阅读
- python - Datetime - 查找变量日期前两天的日期
- file-upload - 如何在 slack 的自定义模式中实现选择上传文件的代码?
- c - 在 C 语言中,“fputc”什么时候可以返回第一个参数以外的值?
- r - 在 R 中使用 Elastic 包连接公共 API
- matlab - LU 矩阵求解
- powerbi - Power BI M Query 有条件地连接行
- reactive-programming - 反应性地从消息队列中拉取并提交偏移量
- java - Spring Boot save() 未传播到数据库
- python-3.x - 将大量自变量分配给列表中的元素的最佳方法?
- ios - 无法使用 Developer ID 分发方法分发应用程序