2009-07-12 3 views
0

일부 사용자 정의 열을 포함하는 DataGrid와 함께 Silverlight 응용 프로그램을 가지고 있으며 모두 잘 작동하고 있습니다. 그런 다음 VS 2008 SP1 용 Silverlight 3 도구로 업데이트하고 다시 작성했습니다. 이제 다음과 같은 문제가 있습니다 :더 이상 작동하지 않는다는 DataGrid의 변경 내용은 무엇입니까?

  1. 행을 수정할 때 행이 추가되지 않습니다. ItemsSource 속성은 내용이 언제 변경되는지를 알려주는 ObservableCollection 인스턴스로 설정됩니다. Silverlight 2에서는이 작업이 성공적으로 수행되었습니다. 그러나 Silverlight 3에서이 작업을 수행하려면 ItemsSource를 null로 설정 한 다음 다시 설정해야합니다. 더 큰 문제는 숨기고있는 것처럼 보입니다.하지만 그 작업을 수행 할 수는 없습니다. 아마도.

  2. 행이나 셀을 더 이상 선택할 수 없습니다. 운이 좋다면 작동을 멈추기 전에 하나의 전체 행을 선택할 수 있습니다.

  3. 아무 것도 수정할 수 없습니다. 나는 이것이 이전의 포인트와 관련이 있다고 생각한다.

내가 할 수있을 때 약간의 출처를 게시 하겠지만, 처음에는 그것을 최소한으로 줄여야합니다. 그동안 나는 누군가가 여기에서 무슨 일이 벌어 질지 생각할지도 모른다고 생각했다. 두 번째 두 가지 포인트에 대한 내 직감은 제 바인딩이 더 이상 작동하지 않는다는 것입니다.하지만 그것은 단지 추측이며, 그렇다면 어떤 것이 있는지 전혀 모릅니다.

누구나 제공 할 수있는 도움에 감사드립니다.

업데이트
그래서, 나는 마침내 간단한 작품까지 내 문제를 감소/비교를 작동하지 않습니다. 내 요소 형식에서 Equals을 무시하면 문제가 발생하는 것 같습니다. 그렇게하면 그 유형이 포함 된 ObservableCollection에서 이상하게 발생하고 내 응용 프로그램이 중단됩니다. 좀 더 재미있게 만들려면 중복 된 항목이 컬렉션에 추가되지 않도록 확인하십시오. 정확히 ObservableCollection 항목을 삽입 할 때 평등을 비교해야하는지 (스택 추적은 IndexAt을 사용함을 나타냄)이 문제를 일으키는 것 같습니다.

그래서 어떤 생각이든?

답변

0

I을 마침내 내가 말한 증상을 일으키는 초기 문제를 추적했다. 나는 그것을 인정하기가 부끄럽지만, 누락 된 return 키워드의 간단한 오류였다. 내 Equals 무시는 항상 false을 반환했다. SL3에서는 약간의 문제가 발생했습니다 (SL2는 신경 쓰지 않았습니다).

그래서 문제가 해결되었습니다. 모든 사람에게 교훈이되도록하십시오. 참조 유형 (또는 모든 유형)에서 Equals을 대체하는 경우 실제로 작동하는지 확인하십시오. 단위 테스트는 이것을 잡았을 것입니다. 부끄러운 줄 알아.

1

내 코드에서 똑같은 문제가 발생했습니다. 내가

ObservableObjectCollection observableCollection = stuff; 
myDataGrid.ItemsSource = observableCollection; 

을하고 있던 때 나는 그들이 당신의 ObservableCollection에를 입력하고이 작동 바인딩 :(를 변경할 생각 나는

ObservableCollection<MyType> typedObservableCollection = stuff; 
myDataGrid.ItemsSource = typedObservableCollection; 

을 수행 할 때 잘 wortking하지만하지 않았다.

+0

감사하지만 내 컬렉션은 이미 입력되었습니다. +1 유용한 정보. –

+0

코드를 게시 할 수 있습니까? 내 데이터 격자는 여전히 SL3에서 잘 작동합니다. – R4cOON

+0

@ R4cOON : 불행히도 코드를 게시 할 수 없습니다. 내 문제가 복잡한 데이터 바인딩과 관련되어 있으므로 리팩터링 할 생각입니다. 작동하지 않는 부분에 대한 간략한 예제를 제공하는대로이를 업데이트하고 문제를 확인할 수 있는지 확인합니다. 이 시간을 가져 주셔서 감사합니다. 정말 고맙습니다. –