C# Xamarin表单:将2个属性绑定到另一个属性
我有一个HorizontalListView(来自SharpNado),我有一些按钮可以在不同的项目之间导航。我希望这些按钮仅在某些条件下可见(它们可以同时可见): 如果listview的当前索引大于0,“previous”按钮应可见。如果listview的当前索引低于最高索引(计数-1),我希望“下一步”按钮可见 我想在视图之间使用一些绑定(使用转换器)来解决这个问题。我已经设法用一个转换器将“previous”按钮的可见性绑定到当前索引,该转换器检查索引是否大于0,但我一直在努力使用“next”按钮,因为当当前索引或te列表中的项目数量发生变化时,它需要改变 我已经尝试了很多关于converterparameters的东西,但是我无法通过它们进行绑定。我还尝试了一个选项,其中转换器有一个绑定,但它甚至无法构建 是我正在使用的HorizontalListView,现在切换到另一个视图已经太迟了,因为我已经太深入了 在这一点上,我真的不知道该做什么,我希望这里的人能帮助我。提前谢谢 编辑:C# Xamarin表单:将2个属性绑定到另一个属性,c#,xamarin,data-binding,xamarin.forms,C#,Xamarin,Data Binding,Xamarin.forms,我有一个HorizontalListView(来自SharpNado),我有一些按钮可以在不同的项目之间导航。我希望这些按钮仅在某些条件下可见(它们可以同时可见): 如果listview的当前索引大于0,“previous”按钮应可见。如果listview的当前索引低于最高索引(计数-1),我希望“下一步”按钮可见 我想在视图之间使用一些绑定(使用转换器)来解决这个问题。我已经设法用一个转换器将“previous”按钮的可见性绑定到当前索引,该转换器检查索引是否大于0,但我一直在努力使用“nex
这是我试图构建的控件。在您的
视图模型中添加getter属性:
public bool islowerthanheighestindex=>this.MyIndex
然后将按钮可见性绑定到该属性
然后在需要的地方进行更改:
private int _myIndex;
public int MyIndex
{
get
{
return this._myIndex;
}
set
{
this._myIndex = value;
OnPropertyChanged(nameof(MyIndex));
OnPropertyChanged(nameof(IsLowerThanTheHighestIndex));
}
}
无论您在哪里修改MyList
都会引起更改,例如:
this.MyList.Add(...);
OnPropertyChanged(nameof(IsLowerThanTheHighestIndex));
如果您使用的是ObservableCollection
,您可以订阅CollectionChanged
事件并调用OnPropertyChanged(nameof(IsLowerThanheHighestIndex))事件回调中的code>(记住在结束时取消订阅事件)
HIH请分享您想要实现的代码和视图图像。这听起来像是旋转木马视图中的下一个按钮?@NirmalSubedi,我发布了一张我希望实现的图像,这确实是一种旋转木马。我不知道该发布什么代码。我有一个这样的解决方案,但我很好奇是否有一种方法可以做到这一点,而不用在我的ViewModel中添加额外的代码。另一种方法是在每个平台中创建一个自定义控件(或使用某种自定义旋转木马)它处理按钮可用时的逻辑,您只需绑定按钮的命令