Xamarin Listview中的步进器未正确显示递增的值
我正在开发一个XFUI,其中有一个Listview,里面有一个步进控制。我正在使用ItemSource属性绑定ListViewXamarin Listview中的步进器未正确显示递增的值,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我正在开发一个XFUI,其中有一个Listview,里面有一个步进控制。我正在使用ItemSource属性绑定ListView <ListView ItemsSource="{Binding TicketList,Mode=TwoWay}" > 绑定到ListView的集合定义为 private ObservableCollection<TicketModel> _TicketList; public ObservableCollection&l
<ListView ItemsSource="{Binding TicketList,Mode=TwoWay}" >
绑定到ListView的集合定义为
private ObservableCollection<TicketModel> _TicketList;
public ObservableCollection<TicketModel> TicketList
{
get { return _TicketList; }
set { SetProperty(ref _TicketList, value); }
}
private observedcollection\u TicketList;
公众可观察收集票证列表
{
获取{return\u TicketList;}
set{SetProperty(ref_TicketList,value);}
}
谢谢您需要提高SelectedQuantity属性的属性更改,ObservableCollection只会使它自动响应从集合中添加和删除的项目,它对集合中的项目中的单个属性不起任何作用。此外,您对ItemsSource的双向绑定将不会产生任何效果,并且没有理由使其成为双向绑定 以下是我的代码,它对我有用:
public class MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
int selectedQuantity;
public int SelectedQuantity
{
get
{
return selectedQuantity;
}
set
{
if (selectedQuantity != value)
{
selectedQuantity = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedQuantity"));
}
}
}
}
还有我的XAML:
<StackLayout>
<Entry Text="{Binding SelectedQuantity,Mode=TwoWay}"></Entry>
<Stepper Increment="1" Maximum="10" Minimum="0"
Value="{Binding SelectedQuantity,Mode=TwoWay}"></Stepper>
</StackLayout>
您的模型是否实现了INotifyPropertyChanged?嗨,Jaison,事实上我使用的是Prism,属性使用的是SetProperty。我会在SelectedQuantity属性getter/setter中设置一个断点,确保代码得到执行,并在调试器输出中查找绑定错误。嗨,Bill,实际SelectedQuantity未实现为属性。它是TicketList中Model的子属性,ObservableCollection绑定到Listview。正如我提到的,stepper在ListView中,您可以为模型添加代码吗(至少是定义SelectedQuantity的部分)?嗨,Bill,实际上SelectedQuantity不是作为属性实现的。它是TicketList中Model的子属性,ObservableCollection绑定到Listview。就像我提到的,步进器在一个ListViewThankyouBill中,这很有效。
public class MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
int selectedQuantity;
public int SelectedQuantity
{
get
{
return selectedQuantity;
}
set
{
if (selectedQuantity != value)
{
selectedQuantity = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedQuantity"));
}
}
}
}
<StackLayout>
<Entry Text="{Binding SelectedQuantity,Mode=TwoWay}"></Entry>
<Stepper Increment="1" Maximum="10" Minimum="0"
Value="{Binding SelectedQuantity,Mode=TwoWay}"></Stepper>
</StackLayout>