在我的应用程序中,我使用AutoCompleteTextBox显示基于WPF桌面的应用程序中的用户列表,但由于当前的实现,我们从服务器获取数据,然后在autocompletedropDown列表中显示数据(名称,标题)。但这取决于服务器的响应,它可能会延迟或减慢,所以有一段时间涉及。
如果用户界面保持一段时间(例如1秒或2秒),那么它可能给最终用户带来悬念。 所以我想在自动完成下拉列表所在的同一区域显示进度条。可以吗?
我编写的示例代码,但不知道如何继续......
<toolkit:AutoCompleteBox Name="ACtb" >
<toolkit:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock ... />
<TextBlock ... />
</StackPanel>
</DataTemplate>
</toolkit:AutoCompleteBox.ItemTemplate>
</toolkit:AutoCompleteBox>
<ProgressBar x:Name="ACProgressBar" IsIndeterminate="True" Visibility="Hidden"/>
如果有人知道如何实现那将是幸福的。当我们进行休息呼叫/或仅持续1-2秒
时,此ACProgressBar
将可见
答案 0 :(得分:1)
AutoCompleteBox没有“填充”状态,但它具有Populating
和Populated
个事件。一个简单的选项是子类AutoCompleteBox
并添加一个表示此状态的属性,比如IsPopulating
,您根据这些事件设置/取消设置。然后将ProgressBar
的可见性绑定到此属性。
您可以考虑将此功能封装在附加行为中,而不是继承AutoCompleteBox
。
作为建议,您可以将右侧文本字段中的“微调”样式圆形加载指示器视为不显眼的指示器,这似乎是一种常见的风格。