Xaml Xamarin表单:更改ListView选定行中控件的可见性

Xaml Xamarin表单:更改ListView选定行中控件的可见性,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我有一个跨平台的Xamarin表单应用程序(Android和iOS),其中包含一个ListView。我想有一个按钮显示在任何一行恰好是选定的行 我尝试在每行中定义一个按钮,向数据项添加一个“Selected”属性,然后指定 <Button Text=">" IsVisible="{Binding Selected}"/> 然后将“Selected”属性设置为true,当选择了行时(如中所建议),但除了最初选择的行外,按钮永远不可见。这并不奇怪,我确信ListView不会持

我有一个跨平台的Xamarin表单应用程序(Android和iOS),其中包含一个ListView。我想有一个按钮显示在任何一行恰好是选定的行

我尝试在每行中定义一个按钮,向数据项添加一个“Selected”属性,然后指定

<Button Text=">" IsVisible="{Binding Selected}"/>

然后将“Selected”属性设置为true,当选择了行时(如中所建议),但除了最初选择的行外,按钮永远不可见。这并不奇怪,我确信ListView不会持续轮询我的数据项,寻找更改


如何执行此操作?

将ListView的数据源设置为ViewModels的ObeServable集合,而不是数据模型。每个自定义视图单元都绑定到一个实现INotifyPropertyChanged的viewmodel。您可以在Viewmodel中更改所选项目。

您可以在问题中添加一些代码,我需要查看代码。如果您正确更新所选项目并通知其更改,您所拥有的一切都会很好@Taekahn:这个问题的答案没有明确说明……链接起了作用。为了澄清这一点,答案是:listview数据源应该实现INotifyPropertyChanged。并非listview数据源的所有属性都需要引发更改通知,但至少上述问题中的“Selected”属性(或任何bool)应该引发“PropertyChanged”。事实证明,我不需要更改数据源,我将其作为不可观察的列表保留,因为在我的情况下,我没有从列表中添加或删除项,仅更改列表中项目的属性。