【发布时间】:2018-10-06 00:21:08
【问题描述】:
我正在使用 MVVM 框架在 Xamarin Forms 中进行开发,但在使用轮播视图时遇到了问题。
在我的轮播中,我有几种不同类型的页面可以使用模板显示。
这部分工作正常,我可以通过滑动视图看到不同的页面。
我的问题是,在视图中的一个页面上,我需要在页面加载时更新数据,因此我需要一些方法来检测 Swipe 事件,以便我可以执行检查以查看当前加载了哪个页面然后我可以在显示相关页面时重新加载数据。
我已将一个属性绑定到控件的 SelectedIndex,希望当索引更改时,我可以在 Setter 中捕获它,然后如果它是正确的页面,我可以重新加载数据。
这是我的问题发生的地方。
如果绑定属性设置为 OneWay,则控件可以正常工作,但我无法检测到滑动事件。
如果绑定属性设置为 TwoWay,我可以检测到滑动事件,但控件无法正常工作。出于某种原因,我必须滑动控件两次才能调用该属性。
有谁知道控件为什么不能正常工作以及如何解决这个问题?
【问题讨论】:
-
感谢克里斯的链接,但这似乎不是我需要的。这些示例似乎是在 Code-Behind 而不是 ViewModel 中完成的,所以我不能做很多那里显示的内容。不过,我的主要问题是,为什么我的绑定在设置为 TwoWay 时会在所有其他滑动上工作,但在设置为 OneWay 时它可以工作。这似乎是主要问题,如果这个问题得到解决,那么我应该很好......
-
@plingingo 如果这不相关,请原谅我。当我手动滑动轮播时,我试图隐藏滚动条。 (水平滚动)。有没有办法直接禁用它?
标签: c# android binding xamarin.forms carousel