使用带MVVM的AutoSuggestionBox我在ViewModel中处理QuerySubmitted
事件(使用Behavior SDK进行绑定)。为了在建议列表为空时让UI更加响应用户输入,我添加一个单元素,其中包含文本"未找到建议",或者当建议没有加载时(来自数据库或网络) "建议尚未加载"。
但我不希望用户能够点击这些,因为他们不是真正的建议。如果我可以返回并且什么也不做,但Box会自动获取元素并将其用于建议,从而删除以前键入的文本。
有没有办法防止这种情况发生?
这是xaml:
<AutoSuggestBox x:Uid="StationSearch" ItemsSource="{Binding Path=SuggestedStations}" Text="{Binding SearchQuery, Mode=TwoWay}">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="QuerySubmitted">
<core:InvokeCommandAction Command="{Binding LoadStationData}" InputConverter="{StaticResource SuggestionParameterConverter}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</AutoSuggestBox>
并在VM中:
private void LoadStationData(Station selected)
{
if (selected == _emptyStation || selected == _suggestionsNotLoadedStation)
{
return;
}
... do more
}
// when looking for suggestions:
if(SuggestedStations.Count == 0)
SuggestedStations.Add(_emptyStation);