2014-10-23 4 views
1

저는 WPF가 새로 도입되었습니다. 난 그냥 테이블을 만들기 위해 매우 이상한 문제에 봉착 , 여기 는 내가 가지고있는 코드 :wpf datatable 열 이름에 슬래시를 사용할 수 없습니다./

DataTable table = new DataTable(); 
table.Columns.Add("request/sec", typeof(string)); 
DataRow newRow = dataTable.NewRow(); 
newRow["request/sec", "na"); 

하지만 그것은 단지 "요청/초"와 빈 행과 열 이름을 보여줍니다

그러나, 내가 할 경우 :

다음이 작동하고
DataTable table = new DataTable(); 
table.Columns.Add("test(request/sec)", typeof(string)); 
DataRow newRow = dataTable.NewRow(); 
newRow["test(request/sec)", "na"); 

, 그것은 제대로 열 이름을 표시하고 값을 가진 행

나는 아무 생각 w이 없다 "노나" 이런 일이 일어나고있다, 나는 그것이 우스꽝스럽게 들린다는 것을 안다. 아무도 도와 줄 수 있습니까?

참고 : 나는 또한 어떤 논리에 의해 생성 된 동적이다, 내가 열 이름을 하드 코딩 할 수 @, "//", "/", "\ /"시도, 나는 예로서 위의 코드를 사용

+0

그리드를 사용하여 열을 생성 하시겠습니까? 아니면 직접 지정하고 있습니까? 당신이 직접하고 있다면, 어떻게하고 있는지 보여주십시오. 또한 그리드의'ItemsSource'는 무엇입니까? –

+0

열 이름이 생성됩니다. : – airok

답변

1

속성 이름에 예약 된 문자 (예 : ./)가 포함되어있을 때 바인딩을 만드는 데 문제가 있습니다. 속성 경로 파서는이를 처리하지 않습니다. 당신은 몇 가지 옵션이 있습니다 :

  1. 대신 그들에게 자신을 정의하고, 예약 된 문자 대신 열 이름의 데이터 행의 인덱서에 바인드와 열의, 열을 생성 자동으로 그리드를 갖는 :

    <DataGridTextColumn Binding="{Binding Path=[request/sec]}" Header="request/sec" /> 
    
  2. 열 머리글 텍스트를 제어하려는 경우에만 열 이름을 신경 써야한다면 열을 수동으로 선언하고 열을 "합법적 인"이름으로 지정하고 위와 같이 Header을 설정하십시오.

+0

열 이름을 생성해야합니다. 항상 동일하지는 않습니다. T_T – airok

+0

열 이름에서 잘못된 문자를 제거하지만 열 머리글에 그대로 둘 수 있습니까? 사용자에게는 동일하게 보입니다. –

+0

열 이름에서 잘못된 문자를 제거하지만 열 머리글에 그대로 두는 방법 – airok