如何解决Xamarin Forms Syncfusion-异步数据绑定不适用于SfCombobox
当数据来自异步调用(我的api)时,我在将集合绑定到SfComboBox时遇到问题。当然,所有这些都可以在本地列表中正常工作。
我已经检查了来自api的数据,并且与viewmodel属性的绑定都正常工作。
这里是XAML示例:
<border:SfBorder
Grid.Row="4"
BorderColor="{Binding Source={x:Reference CategoryCombo},Path=IsFocused,Converter={StaticResource ColorConverter},ConverterParameter=0}"
Style="{StaticResource SfBorderStyle}">
<comboBox:SfComboBox
AllowFiltering="True"
x:Name="CategoryCombo"
Style="{StaticResource ComboBoxStyle}"
DataSource="{Binding Categories}" displayMemberPath="Name" SelectedValuePath="Id"
SelectedItem="{Binding SelectedCategory,Mode=TwoWay}"/>
</border:SfBorder>
和全视图模型
[Preserve(AllMembers = true)]
[DataContract]
public class SearchPageviewmodel: Baseviewmodel
{
private ObservableCollection<Category> categories;
private readonly ICategoryQueriesServices categoryQueriesServices;
public ObservableCollection<Category> Categories
{
get { return this.categories; }
set
{
if (this.categories == value)
{
return;
}
this.categories = value;
this.NotifyPropertyChanged();
}
}
private Category selectedCategory;
public Category SelectedCategory
{
get
{
return selectedCategory;
}
set
{
if (selectedCategory != value)
{
selectedCategory = value;
this.NotifyPropertyChanged();
}
}
}
public SearchPageviewmodel(ICategoryQueriesServices categoryQueriesServices)
{
this.categoryQueriesServices = categoryQueriesServices;
}
protected override void CurrentPageOnAppearing(object sender,EventArgs eventArgs)
{
base.CurrentPageOnAppearing(sender,eventArgs);
Task.Run(async () =>
{
var categories = await this.categoryQueriesServices.GetCategoryModelsAsync();
Device.BeginInvokeOnMainThread(() =>
{
Categories = new ObservableCollection<Category>(categories);
});
});
}
}
感谢您的帮助
解决方法
我们已经分析了所报告的问题。我们根据提供的信息准备了一个样本。我们已尝试在最后复制报告的问题,我们担心在最后无法复制该问题。我们随附了示例供您参考。
示例:https://www.syncfusion.com/downloads/support/directtrac/general/ze/CombBoxAsync216018123
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。