UWP - AutoSuggestBox自定义

时间:2016-07-12 12:09:28

标签: validation xaml templates uwp autosuggest

我需要支持某些标准AutoSuggestBox控件的验证。所以我的想法是通过将TextBox更改为ValidatingTextBox(James Croft的ValidatingTextBox实现)来自定义AutoSuggestBox控件。这甚至可能吗?如果是 - 如何,如果不是 - 替代方案是什么?

1 个答案:

答案 0 :(得分:0)

  

所以我的想法是通过将TextBox更改为ValidatingTextBox来自定义AutoSuggestBox控件

建议不要替换TextBox的{​​{1}}。因此,某些默认功能可能会失败。相反,您可以添加一些功能。 WinRTXamlToolkitAutoSuggestBox控件提供了很好的验证扩展。

您可以按照以下步骤将此扩展程序应用于TextBox

  1. 在项目中引用WinRTXamlToolkit。在您的XAML页面中添加AutoSuggestBox的引用,如下所示:

    WinRTXamlToolkit.Controls.Extensions
  2. 使用Visual Studio创建<Page ... xmlns:extensions="using:WinRTXamlToolkit.Controls.Extensions" ...> 控件样式模板的副本。或者,您可以从here复制模板,并将其应用于AutoSuggestBox控件。

  3. 在模板中查找TextBox控件。像下面一样添加AutoSuggestBox

    extensions:FieldValidationExtensions.Format="the format you need"
  4. 如果要显示验证错误消息。您可以将此<TextBox extensions:FieldValidationExtensions.Format="Numeric" x:Name="TextBox" ScrollViewer.BringIntoViewOnFocusChange="False" DesiredCandidateWindowAlignment="BottomEdge" Header="{TemplateBinding Header}" Margin="0" PlaceholderText="{TemplateBinding PlaceholderText}" Style="{TemplateBinding TextBoxStyle}" Width="{TemplateBinding Width}" Canvas.ZIndex="0"/> 的面板从TextBox更改为Grid,然后添加StackPanel,如下所示:

    TextBlock
  5. 现在您可以使用基本的validatingAutoSuggestBox了。