我正在开发Windows Phone 8.1应用。如果我在BitmapIcon控件中设置UriSource,如:
<BitmapIcon Width="35" Height="35" Margin="0" RequestedTheme="Dark" UriSource="/Assets/Main/Operations/appbar.information.png">
一切正常,但如果我想设置它动态,我看到仍然是空场。
我正在使用MVVM Light。我的模型看起来像:
...
private string _icon;
public string Icon
{
get { return _icon; }
set { _icon = value; RaisePropertyChanged("Icon"); }
}
...
接下来,我创建对象,添加到列表,并在此基础上创建可观察的集合。其他字段正常工作,但不是这样:
<BitmapIcon Width="25" Height="25" Margin="0" UriSource="{Binding Icon, Mode=TwoWay}"/>
答案 0 :(得分:1)
BitmapIcon.UriSource
的类型为Uri
而不是string
。你应该改用它:
private Uri _icon;
public Uri Icon
{
get { return _icon; }
set { _icon = value; RaisePropertyChanged("Icon"); }
}
然后在您的视图模型中,您可以设置如下图标:
Icon = new Uri("ms-appx:///Assets/Main/Operations/appbar.information.png");
This answer解释了为什么在XAML中使用字符串有效但在C#代码中无效。