0
當程序更改值時觸發驗證?當程序更改值時觸發驗證?
我有一個數據網格,它有一個'狀態'列。當用戶點擊一個按鈕時,它會啓動一個後臺工作人員,根據datagrid行中的數據進行長時間處理:循環爲行,這是一個ObservableCollection。對於一行,它將報告處理狀態並將其顯示在「狀態」列中(作爲字符串)。有時候,「狀態」將包括文字,如:
錯誤:.... 警告:...
我想改變基於狀態文本狀態單元格背景,即紅色爲錯誤,灰色的警告...
我可以通過驗證來做到這一點嗎?我編碼如下。如果我手動更改狀態文本,它就像我想要的那樣工作。 local:StatusValidationRule檢查它是否有錯誤。但是,這是行不通的,因爲狀態文本被程序改變了,這不會觸發驗證。
有什麼建議嗎?謝謝。
<DataGridTextColumn Header="Status" Width="200" CanUserResize="True">
<DataGridTextColumn.Binding>
<Binding Path="Status" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:StatusValidationRule ValidationStep="UpdatedValue"/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap">
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background"
Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
您是否嘗試過您的驗證設置爲'<地方:StatusValidationRule ValidatesOnTargetUpdated =「真」',這一點應引起它來驗證隨時目標屬性更新 –
感謝,那回答的問題。你可以回答它作爲答案,所以我可以接受它嗎?再次感謝。 – urlreader