0
我有一些動態生成的帶有驗證器的文本框。如果發生驗證錯誤,我希望他們向VM發送命令。這個行爲被放置在一個樣式中,所以我不需要把它寫入到xaml代。WPF風格驗證觸發命令
下面的代碼:
<behaviors:Triggers x:Key="validationTrigger" x:Shared="False">
<behaviors:ValidationErrorEventTrigger>
<cmd:EventToCommand Command="{Binding ValidationError,NotifyOnValidationError=True}"
PassEventArgsToCommand="True" />
</behaviors:ValidationErrorEventTrigger>
</behaviors:Triggers>
<Style x:Key="EditableTextBox" TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="#DDFFDD" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="Red" BorderThickness="2">
<AdornedElementPlaceholder />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="behaviors:OCCInteraction.Triggers" Value="{StaticResource ResourceKey=validationTrigger}" />
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="#FFDDDD"/>
</Trigger>
</Style.Triggers>
</Style>
我現在遇到的問題,就是「Onvalidation」事件被稱爲在VlidationErrorEventTrigger類,但該命令沒有在視圖模型調用。 我已經用直接整合測試它,而不是用樣式,它以這種方式工作。
因此,也許它是與命令的綁定左右...
我希望這說明,就足以解決問題。如果不是,請告訴我:)
嘿,謝謝你的回答! 我也認爲觸發器找不到命令,但即使使用relativsource usercontrol它不能找到它:( –
@inxs嘗試發佈一些更多的xaml .. – Ankesh