I hope you can give a hint how to solve this issue and please ask for more code if needed.
namespace CmsApp.Core.ViewModels.Items
{
public class TableStudentViewModel : BaseItemViewModel
{
private Student _student;
private string[] _imageIconData;
private bool _disableAttendanceFeature;
private string[] _checkMarkImageDataImageData;
public Student Student
{
get { return _student; }
set { _student = value;CheckMarkSet(); }
}
public string[] CheckMarkImageData
{
get { return _checkMarkImageDataImageData; }
set { _checkMarkImageDataImageData = value; FirePropertyChanged(() => CheckMarkImageData); }
}
public string[] ImageIconData
{
get { return _imageIconData; }
set { _imageIconData = value; }
}
public string Title { get { return Student.GivenName + " " + Student.FamilyName; } }
public string FamilyName { get { return Student.FamilyName; } }
public string BirthDate { get { return Student.Cprnr.Substring(0,6); } }
public string ImageUrl { get { return Student.ImageFileURL; } }
public IMvxCommand MarkingPushed
{
get { return new MvxRelayCommand(ChangeCheckMarkSet); ; }
}
public bool DisableAttendanceFeature
{
get { return _disableAttendanceFeature; }
set { _disableAttendanceFeature = value; FirePropertyChanged(() => DisableAttendanceFeature); }
}
public bool Hidden
{
get { return false; }
}
private void CheckMarkSet()
{
MvxTrace.Trace("no action");
UmbracoImageItem image;
if (Student.CurrentAttendence.IsAttending)
{
image = new UmbracoImageItem() {Id = 0, Name = "accept.png"};
}
else
{
image = new UmbracoImageItem() {Id = 0, Name = "error.png"};
}
CheckMarkImageData = new string[] { image.Id.ToString(), image.Name, ImageRequestOption.Resize.ToString(), ImageType.Image.ToString(), true.ToString() };
}
private void ChangeCheckMarkSet()
{
MvxTrace.Trace("no action");
if (DisableAttendanceFeature)
{
return;
}
UmbracoImageItem image;
if (!Student.CurrentAttendence.IsAttending)
{
Student.CurrentAttendence.IsAttending = true;
Student.CurrentAttendence.Modified = true;
image = new UmbracoImageItem() { Id = 0, Name = "accept.png" };
}
else
{
Student.CurrentAttendence.IsAttending = false;
Student.CurrentAttendence.Modified = true;
image = new UmbracoImageItem() { Id = 0, Name = "error.png" };
}
CheckMarkImageData = new string[] { image.Id.ToString(), image.Name, ImageRequestOption.Resize.ToString(), ImageType.Image.ToString(), true.ToString() };
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/dk.appsfabrikken.cmsapp"
android:id="@+id/tableViewItem"
android:layout_width="fill_parent"
android:layout_height="80dp"
android:paddingBottom="1dp"
android:background="@drawable/down">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp">
<CmsApp.Droid.Controls.UmbracoImageView
android:id="@+id/viewImagePreview"
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="centerCrop"
android:padding="5dp"
local:MvxBind="{'ImageData':{'Path':'ImageIconData'},'HideImage':{'Path':'Hidden'}}"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="5dp">
<TextView
android:layout_gravity="center_vertical"
android:id="@+id/title"
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
local:MvxBind="{'Text':{'Path':'Title'}}" />
<TextView
android:layout_gravity="center_vertical"
android:id="@+id/title"
android:textSize="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
local:MvxBind="{'Text':{'Path':'BirthDate'}}" />
</LinearLayout>
</LinearLayout>
<CmsApp.Droid.Controls.UmbracoImageView
android:id="@+id/checkmark"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical|right"
android:src="@drawable/imageaccept"
local:MvxBind="{'Click':{'Path':'MarkingPushed'},'ImageData':{'Path':'CheckMarkImageData'}}"
/>
</FrameLayout>
<cirrious.mvvmcross.binding.android.views.MvxBindableListView
android:padding="5dp"
android:background="@android:color/transparent"
android:id="@+id/ListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:fastScrollEnabled="false"
local:MvxItemTemplate="@layout/tableviewprotocolitem"
local:MvxBind="{'ItemsSource':{'Path':'TableCells'}}"
/>