我想知道如何绑定 UIProgressView的Progress 属性。
在设计中有这个:
[Outlet]
MonoTouch.UIKit.UIProgressView ProgressIndicator { get; set; }
我尝试了以下内容:
set.Bind(ProgressIndicator).For(p => p.Progress).To(vm => vm.IosProgress);
set.Bind(ProgressIndicator).For("Progress").To(vm => vm.IosProgress);
在ViewModel中我有:
private float _iosProgress;
public float IosProgress
{
get { return _iosProgress; }
set { _iosProgress = value; RaisePropertyChanged(()=>IosProgress); }
}
根据要求更新:
- 我有一部带iOS7的iPhone 4
- 我试图将IosProgress指示器绑定到Label,运行完美,经过测试后,标签中显示了3个值,0.33333,0,666667和1。
我为你创建了两个屏幕截图。
这显示了调试期间IosProgress指标的值,构造函数中给出的初始值为0.1f,也是调试消息。
这显示了我尝试的3个版本,具有相同的错误结果,当前的调试消息:
谢谢!
答案 0 :(得分:2)
我刚尝试使用SeekView
https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/ApiExamples UIProgressView
中的 public override void ViewDidLoad()
{
base.ViewDidLoad();
var label = new UILabel(new RectangleF(10, 100, 100, 30));
label.Text = "Slide me:";
Add(label);
var seek = new UISlider(new RectangleF(110, 100, 200, 30));
seek.MinValue = 0;
seek.MaxValue = 100;
Add(seek);
var pro = new UIProgressView(new RectangleF(110, 130, 200, 30));
Add(pro);
var set = this.CreateBindingSet<SeekView, SeekViewModel>();
set.Bind(seek).To(vm => vm.SeekProperty);
set.Bind(pro).For(v => v.Progress).To("SeekProperty / 100");
set.Apply();
}
:
ViewModel
这在iOS7 iPhone模拟器上完全符合预期。
我遇到的唯一问题是0.0f
属性超出1.0f
到{{1}}范围。