我正试图在Xamarin表格的图像单元格前面显示图像。具体来说,我现在正在iOS中尝试此操作,并且已将图像添加到我的iOS项目的资源文件夹中,并确保将图像文件设置为“BundledResource”。图像没有任何特定的大小(目前它非常大)。
我正在通过MVVM方法创建所有表格单元格,所以我有一个工厂创建单元格如下:
return new ImageCell() { ImageSource = "logo.png" };
我已将图像源硬编码或现在作为非60x60的本地png图像(这有关系吗?)。
显示时,不会显示图像的占位符或图像本身。我是否需要在某处设置一个额外的标志来显示它?在我的表格视图中没有显示余量的余量。
编辑:我的图片单元工厂代码如下所示:
public class ImageCellFactory : CellFactory<ImageCellViewModel>
{
protected override Cell OnCreateCell(ImageCellViewModel model)
{
return new ImageCell();
}
protected override void OnSetBindings(Cell cell)
{
cell.SetBinding(TextCell.TextProperty, "Text");
cell.SetBinding(TextCell.DetailProperty, "Detail");
cell.SetBinding(ImageCell.ImageSourceProperty, new Binding("Icon", BindingMode.OneWay));
}
}
我已经尝试按照我之前的代码直接设置图像源(因此删除了绑定等)。我已尝试使用和不使用绑定模式。我可以看到ImageSource正在创建FileImageSource的一个实例,我甚至将图标设置为30x30以防万一有用。
对于视图模型的'Icon'属性,我尝试过ImageSource,只是一个直接的字符串来调用标准转换器。
即使在Xaml中设置了直接的TableView定义,代码隐藏中没有任何有趣的业务,我的图像也不会出现。
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="TesterApp.CodedTableView">
<ContentPage.Content>
<TableView>
<TableSection>
<ImageCell Text="My Logo" ImageSource="logo.jpg"/>
</TableSection>
</TableView>
</ContentPage.Content>
我的徽标位于我的iOS应用程序项目的“Resources”文件夹中,并设置为捆绑资源。上面的图像源是文件名和扩展名的确切大小。