C# 如何使用ObservableCollection绑定到自动完成selecteditem
我目前正在从syncfusion实现自动完成框。当前选择模式设置为C# 如何使用ObservableCollection绑定到自动完成selecteditem,c#,xamarin,mvvm,xamarin.forms,syncfusion,C#,Xamarin,Mvvm,Xamarin.forms,Syncfusion,我目前正在从syncfusion实现自动完成框。当前选择模式设置为Token <autocomplete:SfAutoComplete x:Name="autoComplete" DisplayMemberPath="Location" MultiSelectMode="Token" HeightRe
Token
<autocomplete:SfAutoComplete x:Name="autoComplete"
DisplayMemberPath="Location"
MultiSelectMode="Token"
HeightRequest="120"
HorizontalOptions="FillAndExpand"
TokensWrapMode="Wrap"
SelectedItem="{Binding SelectedLocation}"
DataSource="{Binding FilteredLocations}"
Text="{Binding SearchLocation, Mode=TwoWay}" >
</autocomplete:SfAutoComplete>
但我不希望类型是object,我将其更改为ObservableCollection
,SelectedLocation不再被拾取。当selecteditem是一个集合时,我可以得到一些提示或建议来正确绑定到它吗
我试过的都没用
public ObservableCollection<SearchItem> SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}
public observeablecollection selected位置
{
获取{return\u selectedLocation;}
设置
{
SetProperty(参考所选位置、值);
}
}
在OP澄清后编辑:
看起来您必须使用ObservableCollection
使其工作。如果您希望访问单个SearchItem对象,则需要一种机制来调用另一个方法或属性setter并在那里强制转换项
public ObservableCollection<object> SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}
public observeablecollection selected位置
{
获取{return\u selectedLocation;}
设置
{
SetProperty(参考所选位置、值);
}
}
有关如何使用
observateCollection
然后将结果转换为字符串(或在您的情况下转换为SearchItem
)的完整示例,请参阅以下知识库文章:。它与您的用例的比例不是1:1,但应该足以继续进行。很抱歉,也许我的措辞不好,我正在尝试绑定到ObservableCollection,而不是单个选定项。啊,对了,我错过了Tokens部分。让我再看看。编辑了@PhoenixThanks的帖子,很有效。很奇怪,我必须投,但那就行了。非常感谢。
public ObservableCollection<SearchItem> SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}
public ObservableCollection<object> SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}