我目前正在通过syncfusion实现自动完成框。当前选择模式设置为def data_set(data):
df = pd.DataFrame(data)
df['zip'] = get_zip()
df['region'] = get_region()
newdf = df.filter(['name', 'phone', 'location', 'zip', 'region', 'coordinates', 'rating', 'review_count',
'categories', 'url'], axis=1)
if not os.path.isfile('yelp_data.csv'):
newdf.to_csv('data.csv', header='column_names')
else: # else it exists so append without writing the header
newdf.to_csv('data.csv', mode='a', header=False)
Token
我目前正在使用MVVM方法,如何在不使用对象基础类型的情况下绑定到SelectedLocation。
<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>
我目前的工作原理
private ObservableCollection<SearchItem> _filteredLocations;
public ObservableCollection<SearchItem> FilteredLocations
{
get { return _filteredLocations; }
set { SetProperty(ref _filteredLocations, value); }
}
但是我不希望该类型成为对象,并且我希望将其更改为public object SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}
,所以不再选择SelectedLocation。我可以得到一些技巧或建议来正确绑定选定项的集合。
我尝试的无效的方法
ObservableCollection<SearchItem>
答案 0 :(得分:1)
在经过OP澄清后进行了编辑:
看起来您必须使用ObservableCollection<object>
使其起作用。然后,如果您想访问单个SearchItem对象,则需要一种机制来调用另一个方法或属性设置器,并将其中的项目转换为该机制。
public ObservableCollection<object> SelectedLocation
{
get { return _selectedLocation; }
set
{
SetProperty(ref _selectedLocation, value);
}
}
有关如何使用ObservableCollection<object>
然后将结果强制转换为字符串(或在您的情况下为SearchItem
)的完整示例,请查看此知识库文章:How to get SelectedText from AutoComplete 。它不是您的用例的1:1,但应该足以继续进行。