Я пытаюсь создать экран, как андроид экрана ниже в прошивкой Как изменить ImageView динамически в UiTableViewCell?
Моя проблема в IOS является кружками. В iOS я использую ImageView для кругов с двумя файлами png: red_circle и green_circle. Мне нужно использовать красный круг для положительных значений и зеленый круг для отрицательных значений, но я не знаю, как проверить это условие в коде. Может кто-нибудь мне помочь? Я использую Xamarin.iOS с MvvmCross.
Это мой UIViewController:
public partial class MyProjectsView : MvxViewController<MyProjectsViewModel>
{
public MyProjectsView() : base("MyProjectsView", null)
{
}
public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
public async override void ViewDidLoad()
{
base.ViewDidLoad();
if (RespondsToSelector(new Selector("edgesForExtendedLayout")))
{
EdgesForExtendedLayout = UIRectEdge.None;
}
var source = new MvxSimpleTableViewSource(TblProjects, MyProjectsItem.Key, MyProjectsItem.Key);
TblProjects.Source = source;
this.CreateBinding(source).To<MyProjectsViewModel>(viewModel => viewModel.Projetos).Apply();
this.CreateBinding(LblSyncrhonizingData).For("Visibility").To<MyProjectsViewModel>(vm => vm.IsProgressBarVisible).WithConversion("Visibility").Apply();
this.CreateBinding(Activity).For("Visibility").To<MyProjectsViewModel>(vm => vm.IsProgressBarVisible).WithConversion("Visibility").Apply();
this.CreateBinding(LblDataSynchronized).For("Visibility").To<MyProjectsViewModel>(vm => vm.IsDataSynchronized).WithConversion("Visibility").Apply();
var bounds = UIScreen.MainScreen.Bounds;
var carregamento = new CarregamentoIOS(bounds);
View.Add(carregamento);
ViewModel.Carregamento = carregamento;
await ViewModel.PreencheLista();
}
}
Это мой UITableViewCell:
public partial class MyProjectsItem : MvxTableViewCell
{
public static readonly NSString Key = new NSString("MyProjectsItem");
public static readonly UINib Nib = UINib.FromName("MyProjectsItem", NSBundle.MainBundle);
protected MyProjectsItem(IntPtr handle) : base(handle)
{
this.DelayBind(() =>
{
this.CreateBinding(LblProjectName).To<Project>(project => project.Name).Apply();
this.CreateBinding(LblPercentage).To<Project>(project => project.PercentCompleted).WithConversion("IntToPercentCompleted").Apply();
this.CreateBinding(LblCostMoney).To<Project>(project => project.Cost.Variation).WithConversion("DoubleThousandToStringAbbreviation").Apply();
this.CreateBinding(LblCostDays).To<Project>(project => project.Schedule.Variation).WithConversion("IntToDaysAbbreviation").Apply();
});
}
public static MyProjectsItem Create()
{
return (MyProjectsItem)Nib.Instantiate(null, null)[0];
}
}
Где определяется ваш 'ImageView' для вашего круга? Возможно, вы могли бы создать конвертер, который возьмет ваш элемент управления «ImageView» и привяжет «UIImage» на основе положительного/отрицательного значения из «ViewModel». – Plac3Hold3r
Я определил ImageView в XIB-файле. У меня есть два ImageViews для кругов и папка в моем проекте iOS, которая содержит два файла png: red_circle и green_circle. –
У вас есть контекст для вашего «ImageView» из вашего MvxTableViewCell? – Plac3Hold3r