我確信之前已經詢問過這個問題,但我沒有簡單的時間來搞清楚如何對查詢進行短語處理。樣式觸發器以應用另一種樣式
我有這種風格;
<SolidColorBrush x:Key="SemiTransparentRedBrushKey">#F0FF0000</SolidColorBrush>
<Style x:Key="TextBoxEmptyError" TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text.Length}" Value="0">
<Setter Property="BorderBrush" Value="{StaticResource ResourceKey=SemiTransparentRedBrushKey}"/>
</DataTrigger>
</Style.Triggers>
</Style>
我可以適用於文本框,當它們爲空時有紅色邊框。它很棒,我可以在控制標籤上添加Style="{StaticResource TextBoxEmptyError}"
。但是,如果我想將這種風格應用於觸發器,那麼控件僅在特定條件下使用它(如綁定爲真)呢?喜歡的東西:
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ApprovedRequired}" Value="True">
<Setter Property="Style" Value="{StaticResource TextBoxEmptyError}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
此代碼拋出雖然{"Style object is not allowed to affect the Style property of the object to which it applies."}
的異常可以像這樣做呢?
編輯:如果不能使用伴奏觸發器來完成,因爲它會覆蓋本身,有沒有有條件應用資源風格的另一種方式?
編輯:如果有更適合此操作的術語,我可以更改問題標題。
你有沒有考慮過使用'Validation.ErrorTemplate'?請參閱:http://wpftutorial.net/DataValidation.html – CodingGorilla
是的,但我確定對於我正在使用的一些表單來說這太過分了。這個問題的答案也將更適用於風格的使用,而不僅僅是我的紅色錯誤邊框。 – Tyrsius