【问题标题】:Slider used in Xamarin.froms to control valueXamarin.forms 中用于控制值的滑块
【发布时间】:2020-02-18 13:12:39
【问题描述】:

我在我的 xamarin 应用程序中添加了一个滑块,但我使用视图模型来捕获值。如何在 GUI 上移动滑块并显示上下递增的值,然后捕获其值?

或者有没有办法可以包含“MySlider_ValueChanged”事件并将其应用到视图模型页面而不是文件后面的内容页面代码?

【问题讨论】:

  • 您需要将 Slider 的 value 属性绑定到模型中的某个属性
  • 你在使用 MVVM 吗?还是棱镜?
  • 我正在使用 MVVM

标签: mvvm xamarin.forms model-binding freshmvvm


【解决方案1】:

有没有办法可以包含“MySlider_ValueChanged”事件并将其应用到视图模型页面而不是文件后面的内容页面代码?

你必须找到一个可以绑定在视图模型内的 BindableProperty(ICommand),它应该和事件ValueChanged做同样的工作。

例如

我们可以在页面代码后面处理TapGestureRecognizerTapped事件,我们也可以在视图模型中创建新的ICommand,并与TapGestureRecognizer的Command绑定。

但是,Slider 没有检测值变化的命令,只有 DragStartedCommandDragCompletedCommand , 所以唯一的解决方案是在 Value 的 setter 方法中触发你的方法。

Xaml
<Slider  Value="{Binding CurrentProgress}" />
查看模型
public double CurrentProgress
{
    get { return currentProgress; }
    set
    {
        currentProgress = value;
        NotifyPropertyChanged("CurrentProgress");
        YourMethod(value);
    }
}

请参考https://stackoverflow.com/a/25141043/8187800

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多