我有一个列出活动的列表视图。我有办法获得所选的值。我不知道的是如何检查用户是否没有从列表中选择任何项目。我怎样才能做到这一点?
这就是我填充列表的方式,这将返回至少5-20个活动:
public void Get_Activities()
{
try
{
var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();
var getActivity = conn.QueryAsync<ActivityTable>("SELECT * FROM tblActivity WHERE Deleted != '1' ORDER BY ActivityDescription");
var resultCount = getActivity.Result.Count;
if (resultCount > 0)
{
var result = getActivity.Result;
lstActivity.ItemsSource = result;
lstActivity.IsVisible = true;
}
else
{
lstActivity.IsVisible = false;
}
}
catch (Exception ex)
{
//Crashes.TrackError(ex);
}
}
这就是我获取列表中所选项目的值的方法:
foreach(var x in result)
{
if (x.Selected)
{
// do something with the selected items
}
}
我的问题是这样的
if(list.selecteditemcount == 0){
DisplayAlert("Error","Please select atleast 1 item","Ok");
}
在xamarin项目中,您可以使用Linq(using System.Linq
)。使用Linq,可以很容易地过滤您的列表:
if(!list.Any(x => x.Selected == true))
{
// DisplayAlert...
}
这基本上会检查您的任何商品是否具有值Selected ='true'
或者没有Linq你可以这样做:
if(list.FindAll(x => x.Selected).Count() == 0)
{
//DisplayAlert...
}
用这个
if (result.Any(x => x.Selected))
{
}
else
{
await DisplayAlert("Application Error", "Please choose at least one(1) activity", "Ok");
}