我正在开发一个Xamarin应用程序,并尝试显示一个通知网格,该网格呈现一些文本以及FontAwesome图标。通知列表来自 API,因此我需要为每个通知显示一个自定义图标。我有以下XAML
<controls:FontAwesomeLabel Text="{Binding Icon}" TextColor="{Binding Colour}" />
此控件位于Grid
内,该ItemSource
是具有Icon
和Colour
属性的对象列表。
当我使用第一个代码片段中显示的代码时,FontAwesome图标将不会呈现在页面上。Icon
属性都具有类似 souf0ac
的值。
有趣的是,如果我将第一个代码段中的Text
属性代码更改为
<controls:FontAwesomeLabel Text="{x:Static controls:Icon.FAGlobe}"
TextColor="{Binding Colour}" />
因此,在第二个示例中,Text
属性引用具有相同代码uf0ac
的静态字符串。但是这次它会在页面上呈现正确的字体真棒图标。
这不适用于我的方案,因为 API 调用中提供了图标代码,为每个通知磁贴提供自己的图标。
当涉及到Text="{Binding Icon}"
部分时,我做错了什么。
在我的模型上,我继承了INotifyPropertyChanged
但出于某种原因,我仍然必须使用绑定进行老式学习才能使其工作。
private string _icon;
public string Icon
{
get
{
return _icon;
}
set
{
_icon = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Icon"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;