0
我有这个类:绑定的ImageSource的列表列出
public class Car
{
public string Name { get; set; }
public ImageSource Image { get; set; }
}
我有这样的ObservableCollection车:
private ObservableCollection<Car> _cars;
public ObservableCollection<Car> Cars
{
get { return _cars; }
set
{
_cars = value;
RaisePropertyChanged("Cars");
}
}
在我看来,我会likte到此集合竞价到ListView和显示图像和名称:
<ContentView Padding="5">
<ListView x:Name="cars"
ItemsSource="{Binding Cars}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Image Source="{Binding Image}"></Image>
<Label Text="{Binding Name}"></Label>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentView>
但是只显示名称。我在这里错过了什么?有关如何将图像绑定到列表视图的任何提示?
谢谢!
UPPDATE: 错误似乎是与内存相关:
java.lang.OutOfMemoryError
03-25 15:18:30.159 E/mono-rt (25597): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
03-25 15:18:30.159 E/mono-rt (25597): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:623)
03-25 15:18:30.159 E/mono-rt (25597): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:378)
03-25 15:18:30.159 E/mono-rt (25597): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:417)
我通常可以看到列表中的第一项exceprion发生之前。任何想法如何解决这个问题?
UPDATE2:
使用Xlabs Camera.function采取图像林:
public async Task<MediaFile> TakePicture()
{
Setup();
ImageSource = null;
return await _Mediapicker.TakePhotoAsync (new CameraMediaStorageOptions {
DefaultCamera = CameraDevice.Front, MaxPixelDimension = 20
}).ContinueWith (t => {
if (t.IsFaulted)
{
Status = t.Exception.InnerException.ToString();
}
else if (t.IsCanceled)
{
Status = "Canceled";
}
else
{
var mediaFile = t.Result;
ImageSource = ImageSource.FromStream(() => mediaFile.Source);
return mediaFile;
}
return null;
}, _scheduler);
}
是它也许可能以某种方式在上述方法使图像变小,然后才会慢慢保存到磁盘设备?
谢谢你非常mucg回答。 Unfortunatley在我的PCL中,我有模型。我没有访问BitMap类。有没有解决这个问题? – bugsy 2015-03-25 11:44:20
在使用部分添加此代码'using System.Windows.Media.Imaging;' – 2015-03-25 12:11:11
该类不存在于PCL中,因此无法添加。谢谢 – bugsy 2015-03-25 12:26:13