2016-08-17 2 views
0

enter image description hereDataGrid가 이미로드 된 후이를 업데이트하는 방법은 무엇입니까?

위는 내 DataGrid.dataGrid_Loaded() 메소드 "기록"의 몇 가지를 만들어 내 데이터 그리드는 자사의 "ItemsSource"나는 또 다른 기록을 가지고 라인 (156)에

를 사용하는 목록에 추가를 보여줍니다 (grid.ItemsSource가 설정된 후에) 주석 처리되었습니다. 해당 행을 다시 추가하면 코드가 손상됩니다. DataGrid를 새 데이터로 업데이트하는 방법이 있어야하지만 어떻게해야합니까?

도움 주셔서 감사합니다. I (156) 라인의 주석 처리하면

는 I 얻을 :

'System.InvalidOperationException'형식의 처리되지 않은 예외 PresentationFramework.dll

에 추가 정보를 발생 ItemsControl에 해당 상품 소스와 일치한다.

자세한 내용은 내부 예외를 참조하십시오.

+2

'내 코드 브레이크'를 정의하고 설명하십시오. 우리는 어떤 문제를 해결하려고합니까? – Plutonix

+0

ItemsSource를 설정하기 전에 하나를 추가하는 선을 이동시키지 않거나 grid.ItemsSource = null을 설정 한 다음 선의 주석을 제거한 후 grid.ItemSource = 레코드를 승인하십시오. – MethodMan

+0

@MethodMan 내가 가지고있는 문제는 응용 프로그램이 충돌하지 않고 ItemsSource를 업데이트 할 수 없다는 것입니다. 예를 들어, 어디 라인이 내 DataGrid 소켓을 통해받은 데이터로 업데이트됩니다. – MrDysprosium

답변

0

당신은 그것을 변경하기 전에 ItemsSource을 취소해야합니다

List<string> items = new List<string>() { "a", "b" }; 
dataGrid.ItemsSource = items; 

// some code 

dataGrid.ItemsSource = null; 
items.Add("c"); 
dataGrid.ItemsSource = items; 

// dataGrid contains: "a", "b", "c" 

당신은 ObservableCollection<T>을 사용하기를 원하고 사용자의 XAML에서 바인딩을 사용할 수 있습니다 - 항목이 자동으로 업데이트됩니다.

관련 문제