2016-06-27 4 views
0

SQL Server보기에서 데이터를 표시하는 데 WPF DataGrid을 사용합니다. 방금 열을 자동으로 생성하고 데이터를 표시하기 위해 ItemSource을 제공합니다.런타임시 WPF DataGrid에서 10 진수 형식 변경

숫자 열에 대해서는 사용자가 표시해야하는 소수 자릿수를 변경할 수 있어야합니다.

깊은 검색 후 AutoGeneratingColumn 이벤트 처리기에서 StringFormat을 설정하는 것이 유일한 해결책이라는 것을 알았습니다.

하지만 런타임시 StringFormat을 변경해야합니다. 그걸 도와 줄 수있어?

+0

변환기를 사용할 수 있습니다. –

+0

간단한 솔루션이 있는지 궁금합니다. 변환기가 인공적인 것 같습니다. –

+0

데이터가 저장되는 POCO 필드에 InotifyPropertyChanged를 구현하고 코드 숨김 또는 뷰 모델의 값을 변경할 수 있습니다. TwoWay로 xaml의 바인딩을 표시하는 것을 잊지 마십시오. 어쨌든 @Ayyappan이 옳다. ValueConverter에서 더 잘했다고 생각한다. – ssanga

답변

1

변환기를 사용하지 않고 자동 생성 바인딩을 바꾸고 서식을 추가하는 방법을 알았습니다. 이 코드는 현재 선택된 셀의 열 형식을 설정합니다.

DataGrid dg; // Your DataGrid 
var column = (DataGridTextColumn)dg.CurrentCell.Column; // Selected cell's column 
var format = column.Binding.StringFormat; 
var bind = new Binding(column.Header.ToString()); // Bind to the same column of underlying Source 
bind.Mode = BindingMode.OneWay; 
bind.StringFormat = "F2"; // Two decimal places, add your code here 
column.Binding = bind;// Set new binding