2014-05-10 3 views
0

아마도 나는 상황이 너무 간단하다고 생각합니다. DataGrid가 있는데, 코드 뒤에있는 열을 동적으로 추가합니다. 이 작동합니다. 그렇다면 정수 값을 가진 열이 있습니다.이 값은 열에서 오른쪽 정렬되도록하고 싶지만 실패합니다.형식 DataGridTextColumn (코드 숨김)

public List<List<int>> IntegerData { get; set; }................ 

      DataGridTextColumn textC = new DataGridTextColumn(); 
      textC.Header = ("Column"); 
      textC.Binding = new Binding(string.Format("[{0}]", i));  
      textC.Binding.StringFormat = "00000"; 

과 끝에서 내가 좋아하는 뭔가가 : 내 코드, 그것은 보인다 stringFormat- 그 (첫째 : 문제가있는 textC.Binding.String.Format와

  myDataGrid.Itemssource = IntegerData 

을 선은 올바르게 이전 행을 오버로드합니다.)

형식 "0"은 "1" "2"의 정수를 제공합니다.

는 형식 "00000"문자열 포맷에 대한 올바른이다 "00001", "00002", "00003"제공하지만,하지, 내가

하지만하고 싶은 것 :

형식을 "### ### "또한"1 ""2 ".. 등등을 제공합니다. (왼쪽 맞춤, 선행 공백 없음)

포맷팅 규칙 때문에 예상했거나 기대했던대로 ##### 설명 된대로 자리 표시 자이며 결과는 오른쪽으로 정렬 된 "bbbb1", "bbbb2"입니다. (b는 비어 있습니다!)

그래서 바인딩은 "00000"형식에서는 올바르게 처리되지만 "######"형식에서는 올바르게 처리되지 않는 것으로 보입니다. 누구든지 그 아이디어에 대해 어떤 생각이나 경험이 있습니까? (인터넷에있는 다른 모든 바인딩은 훨씬 복잡합니다.)

+0

덕분에 스타일을 할당 이상을. 나는 독일인이 아니고 영어 원어민도 없다. 그럼에도 불구하고 나는뿐만 아니라 sw 개발,뿐만 아니라 내 영어를 향상 즐길 수 – user3367867

답변

2

셀에 텍스트를 형식화하지 않고 스타일을 작성하여 문제를 해결할 수 있습니다.

첫째, 스타일 작성 :

Style style = new Style(typeof(DataGridCell)); 
style.Setters.Add(new Setter(HorizontalAlignmentProperty, HorizontalAlignment.Right)); 

컬럼에 내 질문에 편집

textC.CellStyle = style; 
+0

thanka 많이, 작품을 완벽하게 – user3367867