2015-11-04 49 views
0

雖然存在驗證錯誤,但我試圖移動下一個單元格進行編輯。我使用了以下代碼。更改驗證錯誤行爲後Datagrid單元格背景錯誤

protected override void OnCellEditEnding(DataGridCellEditEndingEventArgs e) 
{ 
    e.Cancel = true; 
} 

簡稱文章 - edit wpfdatagrid other cells while one of it's cell is invalid

它工作正常,但是當我添加一個後臺行的顏色給它,顏色編輯時消失 As in the image

+0

代碼片段與行的背景顏色有什麼關係?我不清楚你在問什麼。如果你能澄清這個問題將會很好 – Breeze

+0

代碼片斷的作用是啓用單元格的編輯,無論某些單元格是否具有像上面那樣的驗證錯誤。所以代碼正在完成這項工作。但問題是當代碼執行背景顏色正在變成白色。在跳過單元格之後,我需要保持與黃色相同的顏色。 – LahiruD

+0

但是,所有數據都重置時出現問題 – LahiruD

回答

1

有不同的風格對於那些細胞在編輯模式下。由於您取消了所顯示代碼的編輯模式,因此只要您開始編輯,此樣式就會始終顯示。請記住,處於編輯模式的單元格也可能導致其他問題。如果發生驗證錯誤,最好將代碼的行爲更改爲僅取消CellEditEnding-事件。

要解決顏色更改的問題:DataGirdColumns有一個EditingElementStyle可以更改。綁定EditingElementStyle背景(在DataGridTextColumn「測試」的這個例子),正常(非編輯)背景使用下面的XAML:

<DataGridTextColumn Header="Test"> 
    <DataGridTextColumn.EditingElementStyle> 
     <Style TargetType="TextBox"> 
      <Setter Property="Background" Value="{Binding Background}"/> 
     </Style> 
    </DataGridTextColumn.EditingElementStyle> 
</DataGridTextColumn> 

那麼背景不會改變,當你編輯單元格。

+0

我試過這個,但沒有奏效。我在資源文學中宣佈它。所以如何繼續這種做法。 <形式的TargetType = 「{x:類型DataGridTextColumn}」> <觸發屬性= 「EditingElementStyle」> LahiruD

+0

你的風格應該有點像。 – Breeze

+0

但是,當我添加它說,會員「背景」不被識別或不可訪問 – LahiruD

相關問題