2013-07-31 2 views
1

내 DataGrid의 데이터 열을 삭제하고 해당 데이터 원본에 삭제 내용을 적용하는 데 시간이 오래 걸립니다. 나는이 SO thread에있는 데이터 바인딩에 대한 솔루션을 구현했습니다, 내 열 삭제하려면이 코드를 사용하고 있습니다 :Bindable Dynamic Dictionary가있는 C# WPF Datagrid의 열 삭제

vizDataGrid.Columns.Remove(cell.Column); 

무엇 일어나고있는 것은 UI가 삭제되는 열을 보여주고 있다는 것입니다,하지만 내가 갈 때 추가 열, 내가 방금 삭제 한 것으로 생각되는 열 (또는 적어도 해당 열 내부에있는 데이터)이 나타납니다. 어떤 도움을 주시면 대단히 감사하겠습니다. 며칠 동안 (WinForms가 훨씬 간단했습니다!). 감사!

+0

왜 열을 숨기지 않으십니까? –

+0

그때 그것이 나타내는 데이터가 실제로 삭제되지 않기 때문에, 맞습니까? – GGCO

+0

설계 한 데이터 구조 (사실 열 집합 포함)는 고정되어야하며 그리드는 사용자가 상호 작용하려는 열만 표시합니다. –

답변

0

AutoGenerateColumns="True" 때문입니다. false로 설정하고 코드 뒤에 코드를 직접 추가하십시오.

DataGrid에 동적으로 열을 추가하려면 SO post을 확인하십시오.

+0

정말 고마워. 고마워. 진짜 빠른 한 가지 - 행 추가에 대한 처리 방법은 무엇입니까? Bindable Dynamic Dictionary를 계속 사용할 수 있습니까? 아니면 다른 것을해야합니까? 나는 동적 인 데이터 (CSV 파일)를 가지고 있으며, 얼마나 많은 컬럼을 가지고 있는지 알지 못해서 제한을받습니다. – GGCO

+0

Answer에서 제공된 링크를 확인하면 데이터 소스에서 열 수를 찾는 방법을 볼 수 있습니다. 행에 관해서는 데이터 소스를'DataGrid'의'ItemsSource' 속성에 바인딩하면 WPF가 그것을 생성 할 것입니다. 다른 행을 추가하려면 새 데이터 항목을 만들고 데이터 소스를 추가하십시오. – Nitesh

+0

필자는 CSV를 구문 분석하고 행의 항목 수를 계산하여 현재 열을 구축하고 있음을 이해합니다. 행의 경우 각 행을 반복하고 'DataGridRow' 객체를 만들 것이라고 생각했습니다. 난 내 CSV 파일 (지금 내 코드에서 배열로 표현)의 특정 라인에서 적절한 데이터 행을 채 웁니다 부분에 붙어 있어요. 그래서 내 문제는 어떻게 내 데이터 소스를 'ItemsSource' 속성에 바인딩합니까라고 생각합니까? – GGCO

관련 문제