我需要支持某些标准AutoSuggestBox控件的验证。所以我的想法是通过将TextBox更改为ValidatingTextBox(James Croft的ValidatingTextBox实现)来自定义AutoSuggestBox控件。这甚至可能吗?如果是 - 如何,如果不是 - 替代方案是什么?
答案 0 :(得分:0)
所以我的想法是通过将TextBox更改为ValidatingTextBox来自定义AutoSuggestBox控件
建议不要替换TextBox
的{{1}}。因此,某些默认功能可能会失败。相反,您可以添加一些功能。 WinRTXamlToolkit为AutoSuggestBox
控件提供了很好的验证扩展。
您可以按照以下步骤将此扩展程序应用于TextBox
:
在项目中引用WinRTXamlToolkit。在您的XAML页面中添加AutoSuggestBox
的引用,如下所示:
WinRTXamlToolkit.Controls.Extensions
使用Visual Studio创建<Page
...
xmlns:extensions="using:WinRTXamlToolkit.Controls.Extensions"
...>
控件样式模板的副本。或者,您可以从here复制模板,并将其应用于AutoSuggestBox控件。
在模板中查找TextBox控件。像下面一样添加AutoSuggestBox
:
extensions:FieldValidationExtensions.Format="the format you need"
如果要显示验证错误消息。您可以将此<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
现在您可以使用基本的validatingAutoSuggestBox了。