Xamarin ImageResource扩展不起作用

时间:2016-08-17 09:02:58

标签: c# xamarin

我正在尝试使用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>

有人可以帮我解决这个问题吗?

2 个答案:

答案 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 });