我正在尝试使用Xamarin行为和转换器验证用户输入表单。尝试将布尔值转换为对象以使用<li>
扩展名显示正确和错误的图像,但图像未显示。
这是我的XAML标记:
ul.nav > li > a:hover{
color : red;
}
和我的布尔到对象转换器代码:
ImageResource
和我的图片资源扩展类:
<converter:BooleanToObjectConverter x:Key="boolToStyleImage"
x:TypeArguments="Style">
<converter:BooleanToObjectConverter.FalseObject>
<Style TargetType="Image">
<Setter Property="HeightRequest" Value="20" />
<Setter Property="Source" Value="{extension:ImageResource Uno.Images.error.png}" />
</Style>
</converter:BooleanToObjectConverter.FalseObject>
<converter:BooleanToObjectConverter.TrueObject>
<Style TargetType="Image">
<Setter Property="HeightRequest" Value="20" />
<Setter Property="Source" Value="{extension:ImageResource Uno.Images.success.png}" />
</Style>
</converter:BooleanToObjectConverter.TrueObject>
</converter:BooleanToObjectConverter>
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
看看Charles Petzolds的书: https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/
触发器和行为章节中的第874页应指向正确的方向。
您的ImageResourceExtension和BoolToObject转换器是正确的。
确保您尝试使用的图片具有嵌入式资源的构建操作
答案 1 :(得分:0)
在模型中做到这一点
public class NodeItem
{
public string ImagePath { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public ImageSource MyImageSource
{
get
{ //here you decide what resource to use
return ImageSource.FromResource(ImagePath);
}
}
}
在ViewModel中
RoladyItems.Add(new NodeItem() { ImagePath = "Project.Images.Rolady._MG_8150_521x347.png", Name = "Rolada 1", Price = 9.99 });