Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单:将2个属性绑定到另一个属性_C#_Xamarin_Data Binding_Xamarin.forms - Fatal编程技术网

C# Xamarin表单:将2个属性绑定到另一个属性

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

我有一个HorizontalListView(来自SharpNado),我有一些按钮可以在不同的项目之间导航。我希望这些按钮仅在某些条件下可见(它们可以同时可见):

如果listview的当前索引大于0,“previous”按钮应可见。如果listview的当前索引低于最高索引(计数-1),我希望“下一步”按钮可见

我想在视图之间使用一些绑定(使用转换器)来解决这个问题。我已经设法用一个转换器将“previous”按钮的可见性绑定到当前索引,该转换器检查索引是否大于0,但我一直在努力使用“next”按钮,因为当当前索引或te列表中的项目数量发生变化时,它需要改变

我已经尝试了很多关于converterparameters的东西,但是我无法通过它们进行绑定。我还尝试了一个选项,其中转换器有一个绑定,但它甚至无法构建

是我正在使用的HorizontalListView,现在切换到另一个视图已经太迟了,因为我已经太深入了

在这一点上,我真的不知道该做什么,我希望这里的人能帮助我。提前谢谢

编辑:


这是我试图构建的控件。

在您的
视图模型中添加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))(记住在结束时取消订阅事件)


HIH

请分享您想要实现的代码和视图图像。这听起来像是旋转木马视图中的下一个按钮?@NirmalSubedi,我发布了一张我希望实现的图像,这确实是一种旋转木马。我不知道该发布什么代码。我有一个这样的解决方案,但我很好奇是否有一种方法可以做到这一点,而不用在我的ViewModel中添加额外的代码。另一种方法是在每个平台中创建一个自定义控件(或使用某种自定义旋转木马)它处理按钮可用时的逻辑,您只需绑定按钮的命令