MvvmCross:iOS中的绑定进度条

MvvmCross:iOS中的绑定进度条,ios,xamarin.ios,mvvmcross,Ios,Xamarin.ios,Mvvmcross,我想知道如何绑定UIProgressView的Progress属性 在设计中包含以下内容: [Outlet] MonoTouch.UIKit.UIProgressView ProgressIndicator { get; set; } 我尝试了以下方法: set.Bind(ProgressIndicator).For(p => p.Progress).To(vm => vm.IosProgress); set.Bind(ProgressIndicator).For("Progres

我想知道如何绑定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指示器绑定到一个标签上,效果非常好,测试了3个值,0.33333、0666667和1个显示在标签上

我为您创建了两个屏幕截图

  • 这显示调试期间IosProgress指示器的值,构造函数中给出的初始值为0.1f,也显示调试消息。

  • 这显示了我尝试过的3个版本,具有相同的错误结果,当前版本的调试消息:


  • 谢谢大家!

    我刚刚用
    UIProgressView
    在中尝试了
    SeekView

        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();
        }
    
    public override void ViewDidLoad()
    {
    base.ViewDidLoad();
    var标签=新UILabel(新矩形F(10,100,100,30));
    label.Text=“幻灯片我:”;
    添加(标签);
    var seek=新的UISlider(新的矩形f(110100200,30));
    seek.MinValue=0;
    seek.MaxValue=100;
    添加(搜索);
    var pro=新的UIProgressView(新的矩形F(110、130、200、30));
    添加(pro);
    var set=this.CreateBindingSet();
    set.Bind(seek).To(vm=>vm.SeekProperty);
    set.Bind(pro).For(v=>v.Progress.To)(“SeekProperty/100”);
    set.Apply();
    }
    
    这与iOS7 iPhone模拟器上的预期完全一样


    我遇到的唯一问题是,如果
    ViewModel
    属性超出了
    0.0f
    1.0f
    范围。

    查看文档和intellisense,我认为
    Progress
    应该自动绑定。当您尝试使用
    set.Bind(ProgressIndicator).For(p=>p.Progress.to)(vm=>vm.IosProgress)时,在跟踪中会收到哪些消息。如果您可以包括正在运行的iOS设备和版本,并且还可以将
    ioprogress
    绑定到
    UILabel
    的文本,以检查其是否正在按预期进行更改,则可能会有所帮助。
    请参见kProperty/100
    =>
    Mind=blow*100