2011-03-17 48 views
1

我有文本框绑定到我的窗口中的文本属性与验证规则(长度= 4)。我需要添加过滤器,所以我采取了ThomasLebruns WPFDeveloperTools FilteredTextBox。这有效,但是当我使用控件时,每次指定Validation.ErrorTemplate和Binding.ValidationRules时 - 我想将它们构建到FilteredTextBox控件中,以便它们自动应用于每个FilteredTextBox - 如何管理它? 目前我有:WPF TextBox控制过滤+验证

<Window> 
    <Grid> 
    <ps:FilteredTextBox x:Name="textboxPanId" Type="Hex" Grid.Column="1" Grid.Row="1" Height="35" Margin="0,2,0,2" MaxLength="4" 
         Validation.ErrorTemplate="{StaticResource TextBoxErrorTemplate}"> 
     <TextBox.Text> 
     <Binding Path="pan_id" UpdateSourceTrigger="PropertyChanged"> 
      <Binding.ValidationRules> 
      <ps:PanIdValidation /> 
      </Binding.ValidationRules> 
     </Binding> 
     </TextBox.Text> 
    </ps:FilteredTextBox> 

我想只是:

<ps:FilteredTextBox x:Name="textboxPanId" Type="Hex" Grid.Column="1" Grid.Row="1" Height="35" Margin="0,2,0,2" MaxLength="4"> 
    <TextBox.Text> 
    <Binding Path="pan_id" UpdateSourceTrigger="PropertyChanged"/> 
    </TextBox.Text> 

,但应用了错误模板和验证规则。如何将Validation.ErrorTemplate和Binding.ValidationRule的设置移动到资源字典中,其余部分是FilteredTextBox xaml ?.

<ResourceDictionary> 
    <ControlTemplate x:Key="TextBoxErrorTemplate"> 
    ... 
    </ControlTemplate> 

回答

0

我认为,如果你在你的ResourceDictionary可以设置这些有创造FilteredTextBox一种风格,但至少ErrorTemplate几乎肯定。

+0

是的,你是一个''在样式块中为错误模板。但是如何管理ValidationRule绑定? – Ricibob 2011-03-17 16:16:14

+0

嗯,因为它嵌套在您在控件实例上设置的绑定中,所以我不确定您是否可以在XAML中执行此操作。您是否可以将PanIdValidation设置为代码中的默认值,以便您只有在不同的情况下才需要明确指定它? – dain 2011-03-18 11:48:39