2014-10-21 68 views
-1

我會盡可能簡潔地解釋這一點。如何獲取有關DataGrid中驗證錯誤的信息

我在查看以下內容:

  1. DataGrid

ItemsSource綁定到ObservableDictionary<string, string>(我從Dr. WPF了)。 SelectedItem綁定到我的ViewModel的KeyValuePair屬性。在KeyValuePair的setter中,它適當地更改ViewModel中的SelectedKeySelectedValue屬性的值。

  • TextBox
  • Text是從上方結合到SelectedValue雙向的。在SelectedValue的設置器,它運行(簡化的)ObservableDictionary[SelectedKey] = SelectedValue;

    這允許用戶選擇一個行,並通過在TextBox鍵入在ObservableDictionary任何密鑰改變數值。 所有這些都可以正常工作。選擇一行並更改TextBox文本可正確更改代碼隱藏中的ObservableDictionary,並且DataGrid本身在View中更新以反映新值。

    但是,任何時候值發生變化時,DataGrid都會有一個紅色邊框,就像存在驗證錯誤一樣,但我無法弄清楚爲什麼或如何找出驗證錯誤。我還沒有爲DataGrid設置任何類型的驗證,無論是在XAML還是代碼隱藏方面。

    我能做些什麼來找出具體的驗證錯誤,以便我可以嘗試修復它?

    +0

    這不是主題。有一個明確的問題陳述 - 如何找出驗證錯誤的細節? @AndrewBarber – 2014-10-22 21:04:38

    +0

    我認爲在這裏和其他答案的評論中所說的混亂似乎表明我選擇了持續的理由。也就是說,你發佈的答案似乎也驗證了我認爲這個問題是從什麼開始的,所以我將重新開放。不知何故,即使您在一段時間之前發佈了這個消息,我也沒有看到您的答案。爲此道歉! – 2014-10-23 12:43:00

    回答

    -1

    經過額外的搜索,我能找到我自己的答案。我結合一個TextBox的Text屬性,像這樣:

    Text="{Binding ElementName=TheDataGrid, Path=(Validation.Errors)[0].ErrorContent, Mode=OneWay}"

    隨着TheDataGrid被分配到我的DataGrid控件的名稱。

    +0

    @ user1522548如何獲得驗證錯誤是問題的主題,而不是問題的根本原因。下調我的答案,正確解決我的問題,因爲你誤解了這個問題是相當粗魯。 – 2014-10-23 20:31:31

    +0

    順便說一句,現在你可以看到驗證錯誤的根源是什麼? – 2014-10-23 20:49:53

    +0

    'SelectedItem' - >'KeyValuePair'引發了轉換錯誤。 – 2014-10-23 20:54:18